当前位置: 首页 > 知识库问答 >
问题:

使用大整数计算地球的质量

终弘厚
2023-03-14

我试着用一个大整数来计算地球的质量,但实际上有些东西并没有加起来。

我用来计算地球质量的公式是:M=ar2/G=5.98×1024kg。a是重力加速度(9.8 m/s平方),r是地球半径((6.4)*(10^6)),Big-G((6.673)*(10^-11))是重力常数。

我应该得到的值是:5.97219×10^24 kg=5972190000000000000000000000000000000000000000000000000,但是我当前输出的值是:-9353。这显然是一个巨大的差异,所以任何帮助都将不胜感激。

这是我到目前为止...

double bigG = (6.673) * (10^-11);
double radiusSquared = 6371^2;
double acceleration = (10^2); (obviously rounded here from 9.8)
double mass = (acceleration*radiusSquared)/bigG;

BigInteger massBig = new BigDecimal(mass).toBigInteger();
System.out.println("mass of earth: "+massBig);'

我不确定我是否只是弄错了一些输入,或者我是否没有认识到Java的一些潜在过程,因为我对Java和物理都不熟悉。

谢谢你

好吧,我照你说的做了,似乎解决了部分问题。。。以下是更新后的代码:

public static void getPlanetMass(){
    double bigG = (6.673) * (Math.pow(10, -11));
    double radiusSquared =  (Math.pow(6371, 2));
    double acceleration =  (Math.pow(9.8,2)); //(obviously rounded here from 9.8)
    double mass = (acceleration*radiusSquared)/bigG;
    BigInteger massBig = new BigDecimal(mass).toBigInteger();
    System.out.println("mass of earth: "+massBig);
}

当前输出:58417939781807300608正确输出:597360000000000000000000

因此,由于我在这里大约有100万人,我仍然缺少几个数量级,任何精通数学/物理的人都会在这里提供帮助。

共有1个答案

姜烨伟
2023-03-14

^不是电源,而是二进制的XOR

二进制异或运算符复制位,如果它设置在一个操作数,但不是两个。

你想要

Math.pow(x, y);
 类似资料:
  • 我有一个多个圆圈的图像,圆圈内有热点区域,具有高强度(高像素值)和冷点区域(低像素值)。我想用Python中的OpenCV计算每个圆的加权质心。我正在使用这段代码: 好的,这段代码只需获取二值图像,提取所有圆,并找到每个圆的轮廓。 问题是,我需要找到RGB/灰度图像(考虑像素强度)的加权质心,而不是二值图像。我该怎么做? 非常感谢。

  • 问题内容: Java中还有其他方法可以计算整数的幂吗? 我现在使用,但是它返回一个,这通常是很多工作,并且在您只想使用s 时看起来不太干净(那么幂也会总是产生)。 有没有像Python 一样简单的东西? 问题答案: 整数只有32位。这意味着其最大值为。如您所见,对于非常小的数字,您很快就会得到不能再用整数表示的结果。这就是使用的原因。 如果要任意整数精度,请使用。但这当然效率较低。

  • 问题 你想找出月球的相位。 解决方案 以下代码提供了一种计算给出日期的月球相位计算方案: # moonPhase.coffee # Moon-phase calculator # Roger W. Sinnott, Sky & Telescope, June 16, 2006 # http://www.skyandtelescope.com/observing/objects/javascrip

  • 问题内容: 标题基本上说明了一切。我需要使用Python计算地球表面上的多边形内部的面积。计算地球表面上任意多边形所围成的面积虽然可以说明这一点,但在技术细节上仍然含糊不清: 如果要使用更“ GIS”的样式来执行此操作,则需要为您的区域选择一个度量单位,并找到保留该区域的适当投影(并非全部如此)。由于您正在谈论计算任意多边形,因此我将使用类似Lambert Azimuthal等面积投影的方法。将投

  • 问题内容: 我有一张带有捕获用户登录和注销时间的表(他们登录到的应用程序是与MySQL服务器通信的VB)。该表如下例所示: 因此,每次用户登录时,都会在表中添加一个新行,其中包含用户名和时间戳。用于登录的类型为“ 1”。当他们注销时,只有相同的情况是“ 0”。 存在一些轻微的问题,如果用户强制退出该应用程序,则他们似乎永远都不会注销,因为这显然绕过了提交注销查询(类型“ 0”)的过程。但是请忽略这

  • 我必须找到小于或等于给定数字n的素数。我使用埃拉托斯特尼的筛子来寻找素数。 这是我写的代码: 这段代码适用于< code>integer值,但是我必须为< code>long数实现它。而Java不允许创建< code>long大小的数组,所以< code > boolean[]arr = new boolean[n 1];不起作用。有人能建议我解决这个问题的方法吗?