对于程序,我需要找到刻在圆圈中的多边形边长,然后将该长度乘以2/3。我需要结果值是一个整数,但是当我尝试将double转换为int时,它总是返回0。
代码:
0
输出:
sideLength
将sideLength
乘以2/3然后将其转换为int返回0,但我想要201. {{1}}的值是正确的。我该如何解决这个问题?
答案 0 :(得分:1)
问题出在这一行:
int panelLength=(int)((2/3)*sideLength);
确切地说:(2/3)
是一个整数除法,它将返回一个整数。因此,(2/3)
将产生结果0
。我们都知道anything * 0 == 0
。
您可以通过将至少一个值设为双倍来解决此问题:(2.0/3)
或(2/3.0)
或(2.0/3.0)
或(2d/3)
或...