Return 没有按预期返回值

Return is not returning values as expected

我正在尝试将可变时间(浮点数)四舍五入到百位。 (0.01, 0.02, ...)

float Time = 0.0;
float Time += 1/frameRate;

return( (round(Time*100)) /100);

这是我的尝试,但我的结果四舍五入到最接近的整数(0.0、1.0、...)

然后我尝试了这个:

float x = round(Time*100);
return(x/100);

它奏效了。我解决了我自己的问题,但我正在努力找出为什么它有效而另一个无效。

所以如果你查看 round documentation,你会发现 round(x) returns 你是一个整数。

因此,当您编写 round(x)/100 时,您会将 int 除以 100,从而导致意外行为。 但是在 float x = round(y) 中,您明确地将其类型转换为 float,因此除法按预期工作。