Java四面体表面积和体积代码

Java四面体表面积和体积代码,java,Java,当我运行这段代码时,我得到了computeArea()和computeVolume()的错误输出。 从逻辑上讲,我相信这些公式是正确的。 例如,四面体的输入是边长4(等边三角形),高度5。正确答案是面积为37.72,体积为11.55。我的代码是27.71表示面积,0.0表示体积。 所以我很困惑为什么它不起作用。 有更多的代码涉及到这一点,所以我把我认为问题所在的部分放在这里。 提前谢谢 public double computeArea() { double t

当我运行这段代码时,我得到了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;
    }

执行整数除法时,请确保至少有一个操作数是浮点数,否则结果将被截断

在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:/但这在物理上是不可能的;所以表面积和体积都没有正确的答案。