有人可以帮我解决以下问题吗? 我认为这很简单,但我无法弄明白:
decimal _number = 17 / 15; // result is 1,1333333333
_number = Math.Round(_number, 1, MidpointRounding.AwayFromZero); // result is 1,1
如果变量_number有小数,我希望它舍入到下一个数字。在这种情况下,它将是:_number = 2。 提前谢谢
答案 0 :(得分:3)
你必须像这样修复整数除法,因为17 / 15
是1
:
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);