我目前正在为java编写问题集,我的任务是计算重力的加速度,但我不确定是否能得到适当的结果。问题如下:
计算距地球中心distCenter一定距离的重力加速度,并将结果分配给accelGravity。重力加速度的表达式是:(G * M) / (d2),其中G是重力常数6.673 x10-11,M是地球的质量5.98x1024(千克),d是离地球中心的距离(以变量distCenter为单位)。
下面是给我的代码:
import java.util.Scanner;
public class GravityCalculation {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
double G = 6.673e-11;
double M = 5.98e24;
double accelGravity;
double distCenter;
distCenter = scnr.nextDouble();
// your code here
System.out.println(accelGravity);
}
}我只有权限来调整// your code here下面的内容。
我翻译了这个公式所需的数字的科学符号:
accelGravity = (0.00000000006673 * 5980000000000000000000000) / (distCenter * distCenter);我收到以下错误:
error: integer number too large问题集并没有给我提供更多的信息,而且我很清楚,翻译成科学的数字太大了,一个int甚至是长的。我不是要求别人来帮我解决这个问题,而是为我指明一个方向,让我学会如何恰当地解决这样的问题。
发布于 2021-02-10 03:05:48
Double可以在没有任何问题的情况下处理这个范围。我修改了你的密码。它给了我正确的结果。当输入时,避免任何",“例如: 6371000是有效输入,63,71000是无效的。
598000000000000000000是一个整数,超出整数范围,所以您应该使用M代替59800000000000000000000,或者使用598000000000000000000000000000000.00(加上小数部分)。
import java.util.Scanner;
public class GravityCalculation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double G = 6.673e-11;
double M = 5.98e24;
double accelGravity;
double distCenter = 6371000;
System.out.print("Distance from center(default 6371000m): ");
distCenter = scanner.nextDouble();
// your code here
accelGravity = (G * M) / (distCenter * distCenter);
System.out.println("Gravity: " + accelGravity);
}
}https://stackoverflow.com/questions/66130248
复制相似问题