如何将数字四舍五入到小数点后两位
我正在尝试使用C#将数字舍入到下一个数字。例如:如何将数字四舍五入到小数点后两位
0.409 -> 0.41
0.401 -> 0.41
0.414 -> 0.42
0.499 -> 0.50
0.433 -> 0.44
有没有办法使用.NET内置函数来做到这一点?
Math.Ceiling
可以使用。
Math.Ceiling
四舍五入为最接近的整数的,所以我建议你做一些师/乘法也:
var notRounded = 0.409;
var rounded = Math.Ceiling(notRounded * 100)/100;
说明:notRounded
* 100为您提供了40.9。 Math.Ceiling
将返回,所以再次将其重新分为'还原'回原始小数形式:0.41。
感谢您的编辑,错过了那一个。 – 2014-11-03 13:46:06
确保使用'decimal'而不是'double',因为'double'是一个浮点数据类型。 – 2014-11-03 13:49:50
它的工作,但它可以用来四舍五入到小数点后1位吗?例如:0.401到0.5而不是0.41。 – user2506496 2014-11-03 13:50:14
一种方法是Math.Ceiling
作为already described。
另一种方法是计算余,并添加区别围捕:
decimal r = 0.409M;
decimal d = r % .01M > 0 ? (r + .01M - r % .01M) : r;
它也很好。谢谢。 – user2506496 2014-11-03 13:54:22
*我试图围捕号码使用C#*证明这一点[问] – Plutonix 2014-11-03 13:32:33
@LuisFilipe:我不知道他会因为他不想传统的四舍五入... – Chris 2014-11-03 13:34:14
@LuisFilipe这将0.401到0.41? – Reniuz 2014-11-03 13:38:05