双重转换为int返回0

时间:2015-06-10 22:09:02

标签: java

对于程序,我需要找到刻在圆圈中的多边形边长,然后将该长度乘以2/3。我需要结果值是一个整数,但是当我尝试将double转换为int时,它总是返回0。

代码:

0

输出:

sideLength

sideLength乘以2/3然后将其转换为int返回0,但我想要201. {{1}}的值是正确的。我该如何解决这个问题?

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)或...