java - 尝试输出数学方程的解总是结果为 0

标签 java math output java.util.scanner exponent

我是 Java 和编码的完全初学者,我正在尝试制作一个程序,根据用户输入到程序中的内容来求解两个方程。我试过将变量类型更改为 long、int、double,但没有任何变化。结果始终为 0 或 0.0 任何帮助将不胜感激。

package pa2;
import java.util.Scanner;
public class GravitationalForce 
{
    public static void main(String[] args) 

        {
            System.out.println("Please enter the name of the planet and its weight in quintillion kilograms");
            Scanner myScanner = new Scanner (System.in);
            String planetName = myScanner.next();
            int planetWeight = myScanner.nextInt();

            System.out.println("Enter the weight of the person in kilograms");
            double personWeight = myScanner.nextDouble();

            System.out.println("Please enter the radius of the planet Alderaan in million meters");
            double planetRadius = myScanner.nextDouble();
            Long gravitationalConstant = (long) (6.673*Math.pow(10,-11));
            Double force = gravitationalConstant*(planetWeight*Math.pow(10, 18)*personWeight)/planetRadius*Math.pow(10, 6)*planetRadius*Math.pow(10, 6);
            Double gravity = gravitationalConstant*(planetWeight*Math.pow(10, 18)/planetRadius*Math.pow(10, 6)*planetRadius*Math.pow(10, 6));

            System.out.println("The gravitational force of planet " + planetName + " on the person is " + force + " Newtons");
            System.out.println("The gravity of the planet " + planetName + " is " + gravity + " meters per second squared");
        }
}

最佳答案

6.673*Math.pow(10,-11) 是 < 1,所以如果您将它转换为 long,它会变成 0 .

改变

Long gravitationalConstant = (long) (6.673*Math.pow(10,-11));

double gravitationalConstant = 6.673*Math.pow(10,-11);

关于java - 尝试输出数学方程的解总是结果为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48605452/

相关文章:

python - 如何轻松编写带有变量的多行文件(python 2.6)?

math - 在给定点的坐标的情况下,如何在二维空间中找到这些点的方向?

python - 如何等待子进程完成、存储其输出并向输出添加前缀(不带新行)?

java - 项目关闭后,Intellij IDEA 如何减少内存?

java - 实现 JSch 在 Android 应用程序中运行 ssh 命令

algorithm - 寻找具有特定性质的整数 - 欧拉计划问题 221

algorithm - 计算浮点值与整数相乘以产生小于 1 的最大数

c - 为什么 printf(创建单位矩阵)不打印输出?

java - 如何在 Cucumber Selenium 中迭代特征文件

java - UnsatisfiedLinkError java.library.path 中没有 jogl