将小数舍入到下一个数字

时间:2015-05-04 13:02:58

标签: c#

有人可以帮我解决以下问题吗? 我认为这很简单,但我无法弄明白:

decimal _number  =  17 / 15;  // result is 1,1333333333
_number = Math.Round(_number, 1, MidpointRounding.AwayFromZero); // result is 1,1

如果变量_number有小数,我希望它舍入到下一个数字。在这种情况下,它将是:_number = 2。 提前谢谢

3 个答案:

答案 0 :(得分:3)

你必须像这样修复整数除法,因为17 / 151

decimal _number = 17M / 15M;

在此之后使用:

int number = (int)Math.Ceiling(_number);

这导致了这个:

0.0 => 0
0.1 => 1
1.1 => 2
1.7 => 2
2.1 => 3

如果您的两个数字是int类型的参数,请使用Decimal.Divide

decimal _number = Decimal.Divide(parameter1, parameter2);

答案 1 :(得分:2)

您在此处执行integer部门!结果与您的想法不同:

decimal _number  =  17 / 15;

结果是1,而不是1,133333。你需要这样做:

decimal _number = 17M / 15M;

然后,您可以使用Math.Ceiling方法,该方法只返回给定数字的下一个更大的整数:

decimal nextBiggerInt = Math.Ceiling(_number);

答案 2 :(得分:1)

使用Math.Ceiling方法

decimal _number  =  17m / 15m;  // result is 1,1333333333
_number =  Math.Ceiling(_number);