Math.Round总是向上舍入到十进制值

时间:2017-06-29 13:45:46

标签: c# math rounding

我有这个值:833333333333333.33325 并且需要用2位小数(应该是833333333333333.34)

进行舍入

如果我使用MidpointRounding.ToEven或AwayFromZero,我总是得到833333333333333.33。 我如何在C#中使用Math获得833333333333333.34?

代码是:

decimal valorArredondado = Math.Round(valorParcelado, MidpointRounding.AwayFromZero);

凡valorParcelado为833333333333333.33325且我需要以十进制值作为回报。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

decimal r = Math.Ceiling(d * 100m) / 100.0m;

例如:

decimal d = 833333333333333.33325m;
decimal r = Math.Ceiling(d * 100m) / 100.0m;

Console.WriteLine(d); // 833333333333333.33325
Console.WriteLine(r); // 833333333333333.34