finalResult = Math.Ceiling(result = (x - y) / (z - 1));
我正在努力获得全面的数字。 finalResult和结果是双倍的。其他人都是int。好吧......不行。 我将不胜感激。谢谢。
答案 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));