我生成一个随机整数(在0和99之间),将其转换为字符串并成功通过蓝牙将其传输到第二台机器,然后将其转换回整数以进行进一步处理。然而,任何后续计算都会导致答案为0.我使用: -
str_int = strtol(buf, NULL, 10);
但是当我尝试: -
height = (str_int / 100);
答案永远是0.我错过了什么?我需要最终在-0.5和0.5之间缩放这个随机数用于OpenGL处理。
答案 0 :(得分:2)
假设身高是浮动或双倍:
height = (str_int / 100.0);
C中的整数除法总是在将其赋值给变量之前截断为整数。在数字的末尾加上.0
会通知编译器您希望将该数字解释为double
,因此编译器会将该表达式解释为浮点除法。