我在 C# 中遇到了数字舍入的问题。乍一看,Math.Round() 方法似乎工作正常,但是当对某些数字进行四舍五入时,结果却出乎意料。
示例:
谁能解释为什么会发生这种情况?我知道 Math.Round 方法使用“银行家舍入”(舍入一半到偶数),但为什么这种特定情况不遵循预期的舍入行为?
有没有办法解决这个问题,使数字根据标准数学规则而不是“银行家舍入”方法进行舍入?
P.S.仅当您确切知道如何解决此问题时才请回复。我不想要未经实际例子检验的理论讨论或建议。我厌倦了不起作用的“建议”,所以请确保您的答案是基于实际经验并经过您的测试。
预先感谢您的帮助!
它引用最接近小数点后 2 位的第 3 个数字。
Math.Round(数字,近东)
数字就是数字
最接近的小数位被四舍五入
(nearest + 1) 决定向上或向下舍入