球体积法不起作用

时间:2017-10-04 15:23:00

标签: java methods formula

我尝试了许多不同的计算,试图让我的球体积方法起作用。

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);

2 个答案:

答案 0 :(得分:1)

这是一个简单的java测试程序,用于计算球体的体积,您可以将其用作错误的参考,4/3返回int 1 < / strong>而不是double![1.3 recurring代表,因此会影响您的计算:

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并确认它提供相同的值:

enter image description here

答案 1 :(得分:1)

而不是

double x = 4/3;

尝试

double x = 4.0/3.0;

double x = 4.0/3;

double x = 4/3.0;