好的,所以我们有经典的 1 * 1/3 * 3 = 0.9999999。我明白为什么会这样。
在我的用例中,我试图产生一个整数。我很乐意接受我的价值,除非无限精度数学要求我们应该以整数开头(参见:上述用例)。
有没有一种常用的方法来实现这一点?
例子:
双倍 myFloat = 1.0/2.0;
1 * myFloat * 2 = 2 结果:2
我的浮动 = 1.0/2.0;
2.5 * myFloat * 2 = 2.5 结果:2
myFloat = 1.0 / 3.0;
1 * myFloat *3 = .9999 结果:1
myFloat = 1.0 / 3.0;
.9 * myFloat *3 = .9 结果:0
我想到的一种方法是在铺平之前总是对我的结果进行一些增量。不过,我想以一种干净、普遍接受的方式来实现我的结果。
编辑:为清晰起见,根据反馈进行了更改。