舍入算术表达式

时间:2016-01-15 11:19:05

标签: c#

itog = first/second/third;

所有变量都是int。

如何在没有强制转换的情况下对boxTotal进行舍入以使所有变量加倍?

4 个答案:

答案 0 :(得分:2)

两个数字的典型语言无关实现是(a+(b-1))/b,其中ab是整数。

答案 1 :(得分:0)

当所有这些都是整数时,你不能这样做。其中至少有一个必须是双重或浮动。要舍入到最接近的整数,可以使用Math.Ceiling(value)但是必须将括号中的内容转换为十进制,结果转换为int。 示例:

int result = (int)Math.Ceiling((decimal)yourExpression);

答案 2 :(得分:0)

如果您不想将所有内容都加倍,那么

itlog = (int)Math.Ceiling(first/(double)second/third); 

可能有用,虽然我还没有测试过。你需要施展至少一个加倍,否则分裂将是错误的。

答案 3 :(得分:0)

根据gudok的回答,您可以使用:

itog = (first/second +(third - 1)) / third;