当我尝试对数值进行四舍五入时,结果不同。请观察以下输出。它仅针对奇数进行四舍五入。我做错了什么?
PS C:\> [math]::Round(1.5)
2
PS C:\> [math]::Round(2.5)
2
PS C:\> [math]::Round(3.5)
4
PS C:\> [math]::Round(4.5)
4
PS C:\> [math]::Round(5.5)
6
PS C:\> [math]::Round(6.5)
6
当我尝试对数值进行四舍五入时,结果不同。请观察以下输出。它仅针对奇数进行四舍五入。我做错了什么?
PS C:\> [math]::Round(1.5)
2
PS C:\> [math]::Round(2.5)
2
PS C:\> [math]::Round(3.5)
4
PS C:\> [math]::Round(4.5)
4
PS C:\> [math]::Round(5.5)
6
PS C:\> [math]::Round(6.5)
6
[math]
使用银行家舍入法
来自《四舍五入数字PowerShell风格》评论部分
...这意味着数字被舍入到最接近的偶数。这不遵循我学过的数学舍入规则,其中以5结尾的数字总是向上舍入到下一个更高级别的数字。要让Round函数按照我们大多数人学习的数学规则行事,您可以使用额外的AwayFromZero开关 (Dan Sheehan).
如果您始终想要向上舍入,可以使用AwayFromZero
[math]::Round(2.5, 0, [System.MidpointRounding]::AwayFromZero)
N0
,例如"{0,N0}" -f 2.5
或(2.5).ToString('N0')
。 - user6811411