以下适用:
var rounded = Decimal.Round(7.635m, 2);
//rounded: 7.63
Run Code Online (Sandbox Code Playgroud)
对我来说,这是错误和意想不到的行为.我假设的价值圆是7.64.
要做到这一点,我可以这样做:
var rounded = Decimal.Round(7.635m, 2, MidpointRounding.AwayFromZero);
//rounded: 7.64
Run Code Online (Sandbox Code Playgroud)
这怎么可能不是默认行为Decimal.Round?有什么好理由吗?
Hab*_*bib 17
这怎么可能不是Decimal.Round的默认行为?有什么好理由吗?
如果你看一下Decimal.Round方法(十进制)的文档
该方法的行为遵循IEEE标准754第4节.这种舍入有时称为一轮半到连或 银行家的舍入.它最大限度地减少了在单个方向上始终舍入中点值所导致的舍入误差.它相当于使用MidpointRounding.ToEven的模式参数调用Round(Decimal,MidpointRounding)方法.
| 归档时间: |
|
| 查看次数: |
11229 次 |
| 最近记录: |