首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算重力加速度

计算重力加速度
EN

Stack Overflow用户
提问于 2021-02-10 02:50:19
回答 1查看 2.3K关注 0票数 0

我目前正在为java编写问题集,我的任务是计算重力的加速度,但我不确定是否能得到适当的结果。问题如下:

计算距地球中心distCenter一定距离的重力加速度,并将结果分配给accelGravity。重力加速度的表达式是:(G * M) / (d2),其中G是重力常数6.673 x10-11,M是地球的质量5.98x1024(千克),d是离地球中心的距离(以变量distCenter为单位)。

下面是给我的代码:

代码语言:javascript
复制
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下面的内容。

我翻译了这个公式所需的数字的科学符号:

代码语言:javascript
复制
accelGravity = (0.00000000006673 * 5980000000000000000000000) / (distCenter * distCenter);

我收到以下错误:

代码语言:javascript
复制
error: integer number too large

问题集并没有给我提供更多的信息,而且我很清楚,翻译成科学的数字太大了,一个int甚至是长的。我不是要求别人来帮我解决这个问题,而是为我指明一个方向,让我学会如何恰当地解决这样的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 03:05:48

Double可以在没有任何问题的情况下处理这个范围。我修改了你的密码。它给了我正确的结果。当输入时,避免任何",“例如: 6371000是有效输入,63,71000是无效的。

598000000000000000000是一个整数,超出整数范围,所以您应该使用M代替59800000000000000000000,或者使用598000000000000000000000000000000.00(加上小数部分)。

代码语言:javascript
复制
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);
   }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66130248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档