如何整理分割结果

时间:2017-04-03 11:15:47

标签: c# math rounding

finalResult = Math.Ceiling(result = (x - y) / (z - 1));

我正在努力获得全面的数字。 finalResult和结果是双倍的。其他人都是int。好吧......不行。 我将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:2)

为了将此操作的结果作为double,您必须至少创建一个操作数double(请参阅https://msdn.microsoft.com/en-us/library/3t4w2bkb.aspx)。尝试添加' d'字面意思:

finalResult = Math.Ceiling(result = (x - y) / (z - 1d));

通过这个小技巧,你可以确保' 1'将被视为double,而不是int,因此整个操作结果将为double。 注意:除非您想要将此值四舍五入,否则应将舍入方法更改为Math.Round()。 注2:确保通过选中if(z != 0)来阻止除以0。

答案 1 :(得分:2)

由于x,y和z都是int,因此除法将以整数形式完成,并将被截断。

为避免这种情况,请按照以下方式进行投射:

finalResult = Math.Ceiling(result = (x - y) / (double)(z - 1));

(我假设在这里你要整理,所以如果分割的结果是,例如,1.00001,你想要舍入的结果是2.0。)

答案 2 :(得分:1)

您需要使用类型转换才能使Math.Ceiling工作。

Decimal finalResult = Math.Ceiling(((Decimal)(x - y)) / (z - 1));