642142533 发表于 2012-5-23 21:23:00

IAR FOR MSP430中关于浮点数赋值给整数的问题

signed char    temp1 = (signed char)20.21;   // 赋值后temp1 =20
这个正的浮点数强制类型转换是没有问题的

signed char    temp2 = (signed char)(-20.21);
此时编译是会提示Warning: floating-point value does not fit in required integral type
运行程序时,发现temp2 = 0

怎么解决这个负的浮点数强制转换问题

xiatianzhang 发表于 2012-5-24 09:46:00

usk5yenj4id04dm 发表于 2012-5-24 18:44:26

attach://20196.jpg
我试了一下没问题.

usk5yenj4id04dm 发表于 2012-5-24 18:45:11

编译没有错误或警告.

642142533 发表于 2012-5-25 19:04:52

usk5yenj4id04dm 发表于 2012-5-24 18:45 static/image/common/back.gif
编译没有错误或警告.

搞定了
   原来我的那个变量定义为char了
      而IAR默认char为unsiged类型的
         所以导致出错
            我把变量定义为signed char就ok了
               谢谢

guxingganyue 发表于 2013-10-22 15:28:08

642142533 发表于 2012-5-25 19:04 static/image/common/back.gif
搞定了
   原来我的那个变量定义为char了
      而IAR默认char为unsiged类型的


我也遇到这个问题了

uint8_t ret_code=0;

ret_code=(uint8_t)(-3.1);//这样写还是报那个警告的。
ret_code=(uint8_t)(-3);//这样写就不报那个警告了。
页: [1]
查看完整版本: IAR FOR MSP430中关于浮点数赋值给整数的问题