号码转换问题
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
,因此编译器会将表达式解释为浮点除法。
我正在生成一个随机整数(介于 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
,因此编译器会将表达式解释为浮点除法。