我对C#中Math.Floor函数的结果感到有些困惑。
通过下面的通话,我得到了91的预期回报:
Math.Floor(91.0);
但是如果我使用下面的调用,我将获得90的返回值,而在这种情况下我仍然希望91。
Math.Floor(9.1/0.1);
这仅仅是由于较小的舍入误差,有没有办法获得一致的结果?
答案 0 :(得分:0)
是的,此问题与精度有关,因为Math.Floor()
不能在数学上四舍五入,而总是向下取整。因此,即使90.9999999
仍然只产生90
。
要获得精确的舍入,请改用Math.Round()
或在传递的值上加上0.5
。