我正在尝试使用C#对数字进行舍入,以便它总是向下一个数字舍入。例如:
0.409 -> 0.41
0.401 -> 0.41
0.414 -> 0.42
0.499 -> 0.50
0.433 -> 0.44
使用.NET内置函数有没有办法做到这一点?
答案 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;