我尝试了许多不同的计算,试图让我的球体积方法起作用。
My Sphere类从Circle扩展,从圆圈中获取区域,以及实现我的Shape3D界面,允许我使用我的体积方法。
但是,我已经为我的方法尝试了所有这些不同的公式,没有任何东西能让我回到准确的球体积。它总是大大关闭。
最接近的是(4 * 22 *半径*半径*半径)/(3 * 7);但它仍然关闭。
cqlsh
我将为我的Shape抽象类,我的Circle类和我的Sphere类以及我的Shape3D接口附加我的代码。
也许我忽略了一些显而易见的事情。当我设置半径并获得它时,半径返回正常。所以我不确定为什么每一个如果完全关闭。
//return (4/3) * super.area() * radius;
//return (Double)((4*22*getRadius()*getRadius()*getRadius() )/(3*7));
//return (4*22*radius * radius * radius )/(3*7);
//return ( (4/3) * (Math.pow(getRadius(), 3) ) / (Math.PI) );
//return (getRadius() * getRadius() * getRadius() ) * (Math.PI) * (4/3);
//return ( super.area() * getRadius() ) * (4/3);
答案 0 :(得分:1)
这是一个简单的java测试程序,用于计算球体的体积,您可以将其用作错误的参考,4/3
返回int, 1 < / strong>而不是double的代表,因此会影响您的计算:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// notice the descriptive variable names rather than x, y and z
double radius;
double diameter;
double volume;
System.out.print("Enter the radius of the sphere:");
radius = scanner.nextDouble();
diameter = (radius * 2.0);
volume = (4.0 / 3.0) * Math.PI * Math.pow(radius, 3); // instead of 4/3 in yours
System.out.println("The volume is: " + String.format("%.1f", volume));
}
}
使用示例:
Enter the radius of the sphere: 5
The volume is: 523.6
要确认它工作正常,您可以使用Google's sphere volume calculator并确认它提供相同的值:
答案 1 :(得分:1)
而不是
double x = 4/3;
尝试
double x = 4.0/3.0;
或
double x = 4.0/3;
或
double x = 4/3.0;