当我运行此代码时,我得到了computeArea()和computeVolume()的错误输出。 从逻辑上讲,我相信公式是正确的。 例如,四面体的输入是边长为4(等边三角形),高度为5.正确答案是面积为37.72,体积为11.55。我的代码推出的是面积为27.71,体积为0.0。 所以我很困惑为什么它不起作用。 有更多的代码涉及到这一点,所以我把我认为问题所在的细分市场。 在此先感谢!!
public double computeArea()
{
double tetrahedronSurfaceArea;
tetrahedronSurfaceArea = 4*((Math.sqrt(3)/4) *side*side);
return tetrahedronSurfaceArea;
}
public double computeVolume()
{
double tetrahedronVolume;
tetrahedronVolume = (1/3) * (((Math.sqrt(3))/4)*side*side) * height;
return tetrahedronVolume;
}
public String toString()
{
String tetrahedronResult = "area is " + computeArea() + "\n";
tetrahedronResult = tetrahedronResult + "volume is " + computeVolume() + "\n";
return tetrahedronResult;
}
答案 0 :(得分:2)
确保在执行整数除法时,至少有一个操作数是浮点数,否则结果将被截断。
在Java int/int
中产生int
,导致小数位被截断。
当numerator
< denominator
结果将始终被截断为0
tetrahedronVolume = (1/3.0) * (((Math.sqrt(3))/4)*side*side) * height;