c ++浮动问题

时间:2015-11-02 21:27:10

标签: c++

我的游戏价值波动时出现问题,无法舍入小数值。 我甚至试过这个功能:

const double dbShift = pow (10.0, 5);
return floor (pValor * dbShift + 0.5) / dbShift;

此功能可正确运行“floor(pValor * dbShift + 0.5)”。然而,dbShift的再次划分又出现了同样的问题。

在我的游戏中,例如,我有一个双倍来以毫秒为单位保存tempoDecorrido(例如,5337)。当尝试在几秒钟内转换(5337 / 1000.0f)时,返回值总是带来不必要的小数位数(5.3369999999999997而不是5337)。

当浮动其他值(如位置和旋转矢量)时,这会导致主要问题成倍增加。

我在google上搜索过,有几个网站可以解释问题的原因,但没有一个解决问题的原因,除非你想在屏幕上以字符串形式显示值,但事实并非如此。我需要处理浮动值,而不是屏幕上的信息。

最后,有人在最终解决这个问题。强制浮动值有五个小数位,例如?

回顾已经测试过上述功能但没有成功。 我已经感谢你的帮助。

0 个答案:

没有答案