finalResult = Math.Ceiling(result = (x - y) / (z - 1));我在试着弄个整数。finalResult和结果是两倍。其他人则是int。而且呃..。不起作用。我会感谢你的帮助。谢谢。
发布于 2017-04-03 11:22:38
为了获得作为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。
发布于 2017-04-03 11:26:50
由于x、y和z都是int,所以除法将作为整数进行,并将被截断。
为了避免这种情况,只需按如下方式进行转换:
finalResult = Math.Ceiling(result = (x - y) / (double)(z - 1));(我在这里假设你想要集合,所以如果除法的结果是,比如说,1.00001,你会希望舍入的结果是2.0。)
发布于 2017-04-03 11:23:13
您需要一个类型转换才能使Math.Ceiling工作。
Decimal finalResult = Math.Ceiling(((Decimal)(x - y)) / (z - 1));https://stackoverflow.com/questions/43183228
复制相似问题