可能重复:
处理浮点数的准确性问题
我正在编写一个 OpenGl 动画并使用浮点变量“时间”来跟踪时间。我将“时间”变量增加 0.01。每当“时间”达到整数值时,我都有一定的条件要满足。问题是在一定时间后,浮点增量显示出奇怪的行为。我从时间 = 0 开始,我看到“时间”达到 0.83 后,下一个值为 0.839999。我虽然这可能与浮点精度有关,所以我尝试使用双精度/长双精度,我发现代码没有达到值 1.00,而是达到了值 1.0000007。
我尝试增加“0.01f”而不是“0.01”,但没有成功。这是 Visual Studio 中的一些错误还是我做错了?我可以发布代码,但我认为它没有多大用处,因为我只在一个地方分配“时间”,而它只是在其他地方使用。