当值为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}");
Run Code Online (Sandbox Code Playgroud)
预期结果是2个十进制值.4.01.
根据文件:
[...]将十进制值舍入到指定数量的小数位,并将中点值舍入到最接近的偶数.
看一下粗体文字.
如果该值是,4.005那么中点值.005将四舍五入为.00,而不是.01因为前者是偶数而后者是奇数.
所以,你得到的价值是预期的价值.
相反,您想要使用重载:
var result = Math.Round(number, 2, MidpointRounding.AwayFromZero);
Console.WriteLine($"{result:0.00}");
Run Code Online (Sandbox Code Playgroud)