数学/舍入不正确?

Jer*_*ner 1 java math rounding

所以在下面的代码集中,由于某种原因,我得到了完全错误的答案......

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

答案假设为:995小时,56分钟和21.1秒.如果输入是500000

四舍五入不是我的问题,我的问题是为什么我得到:1.4小时83​​.9秒...等

Ell*_*sch 6

问题出在这里,

double P = Math.pow(z,(3 / 2));
Run Code Online (Sandbox Code Playgroud)

更具体地说

(3 / 2)
Run Code Online (Sandbox Code Playgroud)

因为那是整数数学.你可以用

(3 / (double) 2)
Run Code Online (Sandbox Code Playgroud)

要么

(1.5)
Run Code Online (Sandbox Code Playgroud)