Java GPA计算器

时间:2013-09-12 07:32:37

标签: java calculator

我的Main类中有这个代码。我的问题是,当GPA计算时总计除以类别。它没有给我全部数字。 EX如果总数为14且类为4则为3.5,我的代码仅给出3.0。有谁知道为什么,我非常感谢你的帮助!

Scanner input = new Scanner(System.in);
    System.out.print("How many classes did you have?: ");
    int classes = input.nextInt();
    String grades = "";
    int total = 0;
    int dec;



    for (int j = 0; j < classes; j++) {

        Scanner inputters = new Scanner(System.in);
        System.out.print("What is your Grade?: ");
        grades = inputters.nextLine();


        if (grades.equals("A")){
        dec = 4; 
        total += dec;

    } else if (grades.equals("B")){
        dec = 3;
        total += dec;

    } else if (grades.equals("C")){
        dec = 2;
        total += dec;

    } else if (grades.equals("D")){
        dec = 1;
        total += dec;

    } else if (grades.equals("F")){
        dec = 0;
        total += dec;

    }

    }


    double GPA = total / classes;
    System.out.println(GPA);

    DecimalFormat formatter = new DecimalFormat("0.##");
    System.out.println( formatter.format(GPA));

1 个答案:

答案 0 :(得分:1)

这是因为你将int除以int,它永远不会产生浮点数。将总数/类的类型更改为加倍(或投射它们),GPA将是您期望的数字。

PS:不是双打并不准确,例如,0.9 + 0.1!= 1.0。如果要进行“正确”的双重计算,请使用BigDecimal,并在使用时使用String构造函数。