Hus*_*nan 2 c# double rounding
让我们说:
Math.Round(2.5) //2.0
Math.Round(-2.5) //-2.0
Math.Round(2.5,MidpointRounding.ToEven) // 2.0
Math.Round(2.5,MidpointRounding.AwayFromZero) //3.0
Run Code Online (Sandbox Code Playgroud)
问题:如果我用-77777777.5更改数字,为什么结果是-77777778.0而不是-77777777.0
Math.Round(-77777777.5) // -77777778.0
Math.Round(-77777777.5,MidpointRounding.AwayFromZero) // -77777778.0
Math.Round(-77777777.5,MidpointRounding.ToEven) // -77777778.0
Run Code Online (Sandbox Code Playgroud)
默认MidPointRounding模式是ToEven.在此模式下,如文档所述(a输入值在哪里),
最接近a的整数.如果a的小数分量在两个整数之间,其中一个是偶数而另一个是奇数,则返回偶数.
-77777777.5有两个最接近的整数-77777777,-77777778但后者是偶数,所以这是返回的整数.
在AwayFromZero模式中,-77777778显然比零更远-77777777.
| 归档时间: |
|
| 查看次数: |
2502 次 |
| 最近记录: |