可能重复:
为什么.NET使用银行家的舍入作为默认值?
这是一个示例代码
decimal num1=390, num2=60, result;
result=num1/num2; // here I get 6.5
result=Math.Round(result,0);
Run Code Online (Sandbox Code Playgroud)
结果的最终值应为7但是,我得到6.为什么这样的行为呢?
检查第三个参数MidpointRounding.
默认情况下使用MidpointRounding.ToEven,所以
Math.Round(result,0); // 6.0
//or
Math.Round(result,0, MidpointRounding.ToEven); // 6.0
//But:
Math.Round(result,0, MidpointRounding.AwayFromZero); // 7.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6522 次 |
最近记录: |