号码转换问题

时间:2015-01-20 21:55:31

标签: c bluetooth

我生成一个随机整数(在0和99之间),将其转换为字符串并成功通过蓝牙将其传输到第二台机器,然后将其转换回整数以进行进一步处理。然而,任何后续计算都会导致答案为0.我使用: -

str_int = strtol(buf, NULL, 10);

但是当我尝试: -

height = (str_int / 100);

答案永远是0.我错过了什么?我需要最终在-0.5和0.5之间缩放这个随机数用于OpenGL处理​​。

1 个答案:

答案 0 :(得分:2)

假设身高是浮动或双倍:

height = (str_int / 100.0);

C中的整数除法总是在将其赋值给变量之前截断为整数。在数字的末尾加上.0会通知编译器您希望将该数字解释为double,因此编译器会将该表达式解释为浮点除法。