导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C编程高手请进[过路人]

 *第27894篇: C编程高手请进

  
楼 主:过路人 2004年11月27日19:37
 C编程高手请进
g_fmeasnum = (u32)g_fmeasnum;
g_bydisbuf[3] = c_bydisbill[g_fmeasnum / 1000];         
g_bydisbuf[2] = c_bydisbill[g_fmeasnum % 1000 / 100];
g_bydisbuf[1] = c_bydisbill[g_fmeasnum % 100 / 10];
g_bydisbuf[0] = c_bydisbill[g_fmeasnum % 10];
g_fmeasnum是float型,强制转换不了unsigned long int 型我要化为整形用于显示,但编译通不过
提示是“expression must have integral type"

对g_fmeasnum的定义如下:
typedef  float  fp32;
fp32 g_fmeasnum;

  
2楼:lenglianxi 2004年11月29日11:23
 这样的
g_fmeasnum = (u32)g_fmeasnum;
g_bydisbuf[3] = c_bydisbill[g_fmeasnum / 1000];         

g_fmeasnum 转换后仍然是float;
可以这么做
g_bydisbuf[3] = c_bydisbill[(u32)g_fmeasnum / 1000];         

或者
u32 g_tmp = (u32) g_fmeasnum;    
g_bydisbuf[3] = c_bydisbill[g_tmp / 1000];         

  
3楼:过路人 2004年11月29日16:47
 谢谢你的帮助!!!
  不过,你的第一

谢谢你的帮助!!!
  不过,你的第一种方法不可行,我最初就是用你提出的第一种方法,
后来与人聊天时,问别人的,用的是你的第二种方法,提起来我就记起来了,我们上c课程
时,老师说过,类型之间的转换需要中间变量,不能直接用变量本身进行强制转换,
还是得谢谢你!!!
   我的qq是43556585,邮箱是rxz008有问题一起探讨,若看到,请回复!!!
  
4楼:guest 2004年12月2日17:02
 收到
我qq 24445538
lianxi.leng@changhong.com
  
5楼:过路人 2004年12月3日09:08
 OK!!
有问题我就请教你了!!!

ok!!
有问题我就请教你了!!!
  
6楼:过路人 2004年11月29日16:59
 邮箱后缀没加,真大意,哈哈!!
rxz

邮箱后缀没加,真大意,哈哈!!
rxz008@163.com

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:ICD2 PIC在线调试器

[下一篇主题]:我是新手,请问一下那位能给我说一下汇编语言编程的方法,谢谢