【发布时间】:2012-08-24 16:18:39
【问题描述】:
为什么当我执行以下操作时...
Math.Round(0.75, 1, MidpointRounding.AwayFromZero)
我得到 0.8
但是当我执行以下操作时...
Math.Round(0.575, 2, MidpointRounding.AwayFromZero)
我没有得到 0.58。相反,我得到 0.57。我想要任何 5 及以上的四舍五入,所以 0.575 应该是 0.58。
【问题讨论】:
-
first answer in this question 应该有助于回答这个问题。
-
@KenWhite:我不确定它会不会。问题是,通过真正的数学将
.575舍入到远离零的两位小数会得到.58,但这不是观察到的结果。在这种情况下,它与浮点表示有关。 -
@Chris:你是对的。 :-) 我主要使用 Delphi,它的 Round() 在大多数情况下都可以处理这样的事情。不过,我刚刚签入了 C#,并且可以看到问题。
标签: .net vb.net math-functions