尝试输出数学方程的解总是结果为 0
Trying to output solution to math equation always results in 0
我完全是 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 和编码的初学者,我正在尝试制作一个程序,根据用户输入到程序中的内容来求解两个方程。我试过将变量类型更改为 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);