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

时间:2013-09-09 22:25:59

标签: java

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

1 个答案:

答案 0 :(得分:2)

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

在Java int/int中产生int,导致小数位被截断。

numerator< denominator结果将始终被截断为0

tetrahedronVolume = (1/3.0) * (((Math.sqrt(3))/4)*side*side) * height;