不一致 Math.Floor 结果
Inconsistent Math.Floor results
我对 C# 中 Math.Floor 函数的结果感到有点困惑。
我通过以下调用得到了预期的 return 91:
Math.Floor(91.0);
但是如果我使用下面的调用,我会得到一个 returned 值 90,而在这种情况下我仍然期望 91。
Math.Floor(9.1/0.1);
这仅仅是因为小的舍入误差吗?有没有办法获得一致的结果?
是的,这个问题与精度有关,因为 Math.Floor()
根本不会在数学上四舍五入,而是总是向下取整。所以即使 90.9999999
仍然只产生 90
.
为了准确舍入,请改用 Math.Round()
或将 0.5
添加到传递的值。
我对 C# 中 Math.Floor 函数的结果感到有点困惑。
我通过以下调用得到了预期的 return 91:
Math.Floor(91.0);
但是如果我使用下面的调用,我会得到一个 returned 值 90,而在这种情况下我仍然期望 91。
Math.Floor(9.1/0.1);
这仅仅是因为小的舍入误差吗?有没有办法获得一致的结果?
是的,这个问题与精度有关,因为 Math.Floor()
根本不会在数学上四舍五入,而是总是向下取整。所以即使 90.9999999
仍然只产生 90
.
为了准确舍入,请改用 Math.Round()
或将 0.5
添加到传递的值。