我使用我的体重作为180,在地球以外的行星上用lbs找到我的体重,并使用质量和表面重力来找到重量。我面临的问题是,无论何时调用此方法,权重值都会返回180,这是调用方法的8倍。在我的代码中,我的重量是用(mass * roundedSG)/ 433计算的...它不应该返回180.我不知道如何解决这个问题,我已经尝试了几个小时。 for循环是一个不同的方法,顺便说一下,我正在为家庭工作做这个,任何帮助都会受到赞赏,试着解决我的这个问题。谢谢!
public static double weight(double sGravity, double w)
{
double roundedSG = sGravity / 10;
double mass = (w * 433.59237)/roundedSG;
double weight = (mass * roundedSG)/433.59237;
return weight;
}
for(int i = 0; i < planetSurfaceGravity.length; i++)
{
weightOnPlanets[i] = weight(planetSurfaceGravity[i], weightLbs);
System.out.println(weightOnPlanets[i]);
}
}
答案 0 :(得分:2)
我认为你的体重()数学是不正确的。看起来重量实际上是返回以下内容:
(w * 433/roundedSG)*roundedSG/433.
433s和roundSGs取消了,你只是回归w,我猜是180?
答案 1 :(得分:0)
正确的重量公式是:
重量=(质量*重力);
更改自:
double weight = (mass * roundedSG)/433.59237;
致:
double weight = mass * roundedSG;
答案 2 :(得分:0)
您的体重计算方法不正确。它的结果只返回你作为weightLbs(= 180)传递的w。
答案 3 :(得分:0)
我重命名了你的变量,并添加了一个常量,使代码更清晰:
private static final double GRAMS_PER_POUND = 433.59237;
public static double weight(double sGravity, double weightLbs)
{
double roundedSG = sGravity / 10;
double mass = (weightLbs * GRAMS_PER_POUND)/roundedSG;
double weight = (mass * roundedSG)/GRAMS_PER_POUND;
return weight;
}
所以你的地球上的质量被转化为克,正被你所检查的任何行星的重力所分割。将质量计算更改为
double mass = weightLbs * GRAMS_PER_POUND;
然后重量计算应该没问题,将另一个行星上的重量从克转换回磅。