如何将数字向上舍入为2位小数

时间:2014-11-03 13:31:50

标签: c# numbers rounding

我正在尝试使用C#对数字进行舍入,以便它总是向下一个数字舍入。例如:

0.409 -> 0.41
0.401 -> 0.41
0.414 -> 0.42
0.499 -> 0.50
0.433 -> 0.44

使用.NET内置函数有没有办法做到这一点?

2 个答案:

答案 0 :(得分:5)

Math.Ceiling可以使用。

Math.Ceiling舍入到最接近的整数,所以我建议你做一些除法/乘法:

var notRounded = 0.409;
var rounded = Math.Ceiling(notRounded * 100) / 100;

说明:notRounded * 100为您提供 40.9 Math.Ceiling将返回 41 ,因此将其再次划分为“将其恢复”为原始小数形式: 0.41

答案 1 :(得分:1)

一种方式是Math.Ceiling already described

另一种选择是计算余数,并将差值加在一起:

decimal r = 0.409M;
decimal d = r % .01M > 0 ? (r + .01M - r % .01M) : r;