一个数组中的单个值没有用函数正确解析

问题描述:

我一直在这方面工作很长时间,对于我的生活,我无法弄清楚为什么天王星的surfGrav值会被输出为这样数量可观。基本上,该程序基于行星质量和半径生成表面引力。这只是天王星的价值;一切都很好。我已经加倍与谷歌的价值检查,但无济于事。 此外,这是为我的计算机科学课程,所以我不能只是修改utput是我想要的,我必须解决我已经有的。 木星的价值应该远远低于木星的价值。 感谢您的帮助!一个数组中的单个值没有用函数正确解析

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.PrintWriter; 

public class GravityV1 
{ 

public static String[] planets = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"}; 

public static int[] radii = {2439000, 6052000, 6378000, 3397000, 71492000, 60268000, 2559000, 24764000}; 

public static double[] mass = {3.30E+23, 4.87E+24, 5.98E+24, 6.42E+23, 1.90E+27, 5.69E+26, 8.68E+25, 1.02E+26}; 

public static double constantGrav = 6.67E-11; 

public static double a; 

//constructors 
private static PrintWriter outFile; 

//main method 
public static void main (String[] args) throws FileNotFoundException 
{ 
    outFile = new PrintWriter(new File("gravity1.txt")); 
    System.out.println("      Planetary Data       "); 
    System.out.println("Planet   Diameter(km)  Mass(kg)   g (m/s^2) "); 
    System.out.println("-----------------------------------------------------------------"); 
    for(int i = 0; i < planets.length; i++){ 
     double surfGrav = surfGrav(i); 
     System.out.printf("%8s%15d%20.2e%16.4f%n", planets[i], (2 *radii[i]), mass[i], surfGrav); 
     txtGrav(i); 
    } 
    outFile.close(); 
} 

//this method requires the planet as input. Then it will output and calculate the surface gravity 
public static double surfGrav (int planet) 
{ 
    return (constantGrav * mass[planet])/(Math.pow(radii[planet], 2)); 
} 
//print output to text file too 
public static void txtGrav (int arrayInput) throws FileNotFoundException 
{ 
    a = (surfGrav(arrayInput)); 
    if (arrayInput == 2) { 
     a = Math.round(a); 
    } 
    outFile.printf("%.2f%n", a); 
} 

} 

Output:   
g (m/s^2) 

3.7001 
8.8686 
9.8052 
3.7108 
24.7950 
10.4488 
884.1073 <--- what 
11.0939 

我想你错过了天王星的半径一个025590000。 (尽管这个值与我在Internet上可以找到的有些不同)。

+0

我甚至无法开始证明我的数学中这个愚蠢的错误。感谢一群人指出了这一点。我真的需要睡觉... – LordValkyrie 2014-09-26 01:53:02