1

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

1 回答 1

2

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

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

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

tetrahedronVolume = (1/3.0) * (((Math.sqrt(3))/4)*side*side) * height;
于 2013-09-09T22:27:40.383 回答