繁体   English   中英

双Java取整

[英]Rounding in double java

public class project3 {
    public static void main(String[] args) {

        int earnedRuns = 52;
        int inningsPitched = 182;
        double ERA = (earnedRuns * 9) / inningsPitched;
        String FirstName = "Anibal";
        String LastName = "Sanchez";

        System.out.println("Pitcher's first name: " + FirstName);
        System.out.println("Pitcher's last name: " + LastName);
        System.out.println("Number of earned runs: " + earnedRuns);
        System.out.println("Number of innings pitched: " + inningsPitched);
        System.out.println(FirstName + " " + LastName + " has an ERA of " + ERA);
    }
}

ERA的结果是2.0而不是2.57 ...我无法弄清楚为什么

从根本上讲,您是:

  1. 整数乘以整数 -> 整数 (结果:486)
  2. 整数除以整数 -> 整数 (结果:2)
  3. 将结果分配给double变量 -> double (结果:2.0D)

所以,你首先需要 (“转换”)的整数浮点或双精度。

double ERA = ((double)earnedRuns * 9) / inningsPitched;

或更简单:

double ERA = (earnedRuns * 9.0) / inningsPitched;

仅强制转换一个整数就足够了,因为在Java中:integer * double-> double

编辑:

9.0 D或9.0 d只是告诉java 9.0是一个double 同样适用于9.0 f或9.0 F。 这意味着9.0是float

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM