所以在下面的代码集中,由于某种原因,我得到了完全错误的答案......
import java.util.*;
import java.io.*;
import java.lang.*;
import type.lib.*;
public class Check03B
{
public static void main(String[] args)
{
PrintStream print = new PrintStream(System.out);
Scanner scan = new Scanner(System.in);
print.printf("Enter the satellite altitude in km ... ");
double A = scan.nextDouble();
double K = 0.00995;
double R = 6378;
double z = (K * (A + R));
double P = Math.pow(z,(3 / 2));
double x = (P / 3600);
double y = (P / 60);
print.printf("Orbital period = " + x + " hours, " + y + " minutes, and " + "%.1f", P).print(" seconds");
}
}
答案可能是:995小时,56分钟和21.1秒。如果输入是500000
四舍五入不是我的问题,我的问题是为什么我得到: 1.4小时83.9秒......等等。
答案 0 :(得分:6)
问题出在这里,
double P = Math.pow(z,(3 / 2));
更具体地说
(3 / 2)
因为那是整数数学。你可以用
(3 / (double) 2)
或
(1.5)
答案 1 :(得分:0)
double P = Math.pow(z,(3 / 2));
double x = (P / 3600);
double y = (P / 60);
3/2 = 1因为它的整数
你必须在分裂中使用float或double