引用: 原帖由 历史的天空 于 2011-6-19 22:21 发表 如题,最近做一个东西,需要用到除法运算,但是在IAR编译环境下simulate调试模式下尝试编译了一下,发现比如:如果做3/1024 这样的运算后的结果只能保留除法运算后的整数部分。大家有遇到过相似问题的吗??怎样解 ...
有些时候,我是把被除数扩大一定倍数来运算的,这样得出的结果也是变成扩大了相应倍数的,比如转成3000/1024,这样就相当于保留了小数点后面3位的精度,不过,要注意被除数的范围,不要溢出了。
引用: 原帖由 历史的天空 于 2011-6-19 22:21 发表 如题,最近做一个东西,需要用到除法运算,但是在IAR编译环境下simulate调试模式下尝试编译了一下,发现比如:如果做3/1024 这样的运算后的结果只能保留除法运算后的整数部分。大家有遇到过相似问题的吗??怎样解 ...
另外,如果使用的是IAR for MSP430,定义浮点数double i;,运算时尝试换成
i = 3.0/1024.0;
编译环境会将其做浮点数的除法运算。
如果用3/1024,有些编译器仍认为要做的是整型除法,那么得出的仍旧是0。