号码转换问题

Number conversion issue

我正在生成一个随机整数(介于 0 和 99 之间),将其转换为字符串并通过蓝牙成功将其传输到第二台机器,然后再将其转换回整数以供进一步处理。但是,任何后续计算的结果都是 0。我使用的是:-

str_int = strtol(buf, NULL, 10);

但是当我尝试:-

height = (str_int / 100);

答案总是 0。我错过了什么?我需要最终将这个随机数缩放到 -0.5 和 0.5 之间以进行 OpenGL 处理。

假设高度是浮点数或双精度数:

height = (str_int / 100.0);

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