如何在c#中使用Math.Round舍入数字?

时间:2016-09-19 20:01:54

标签: c#

当值为4.005时,应该舍入为4.01。但是当我使用这段代码时,结果只有4。

  var result = Math.Round(number*100)/100;
   Console.WriteLine($"{result:0.00}");

  OR

  var result = Math.Round(number,2);
   Console.WriteLine($"{result:0.00}");

预期结果是2个十进制值。 4.01。

1 个答案:

答案 0 :(得分:5)

根据documentation

  

[...]将小数值舍入到指定数量的小数位,并将中点值舍入到最接近的偶数

以粗体显示文字。

如果值为4.005,则中点值.005将四舍五入为.00,而不是.01,因为前者为偶数,后者为奇数。

所以,你得到的价值是预期值。

相反,您想使用overload

var result = Math.Round(number, 2, MidpointRounding.AwayFromZero);
Console.WriteLine($"{result:0.00}");