Java四面体表面积和体积代码
当我运行这段代码时,我得到了computeArea()和computeVolume()的错误输出。 从逻辑上讲,我相信这些公式是正确的。 例如,四面体的输入是边长4(等边三角形),高度5。正确答案是面积为37.72,体积为11.55。我的代码是27.71表示面积,0.0表示体积。 所以我很困惑为什么它不起作用。 有更多的代码涉及到这一点,所以我把我认为问题所在的部分放在这里。 提前谢谢Java四面体表面积和体积代码,java,Java,当我运行这段代码时,我得到了computeArea()和computeVolume()的错误输出。 从逻辑上讲,我相信这些公式是正确的。 例如,四面体的输入是边长4(等边三角形),高度5。正确答案是面积为37.72,体积为11.55。我的代码是27.71表示面积,0.0表示体积。 所以我很困惑为什么它不起作用。 有更多的代码涉及到这一点,所以我把我认为问题所在的部分放在这里。 提前谢谢 public double computeArea() { double t
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;
}
执行整数除法时,请确保至少有一个操作数是浮点数,否则结果将被截断 在Java中,
int/int
生成一个int
,导致小数位数被截断
当分子
分母时,结果将始终被截断为0
tetrahedronVolume = (1/3.0) * (((Math.sqrt(3))/4)*side*side) * height;
整数除法再次罢工!啊,伙计。computeVolume现在给出了正确的答案,但computeArea给出了同样的错误答案,即使我尝试将至少一个操作数作为浮点,对每个数字单独尝试,然后一次全部尝试,等等,你会意识到如果四面体的所有边都有长度4,高度不可能是5,对吧?这将是4*sqrt(2/3)。你的数学错了。我的老师指定边长为4,高度为5:/但这在物理上是不可能的;所以表面积和体积都没有正确的答案。