繁体   English   中英

GPA计算器,十进制格式

[英]GPA calculator in decimal format

我有一个程序,该程序应该将您的gpa列出到最接近的小数点后两位,并且已经将其降低到最后一行,但是我收到一条错误消息,提示“无法从中引用非静态方法format(double)静态上下文”这是我的代码

import java.text.DecimalFormat;
import java.util.Scanner;

public class GPACalculator {
    public static void main(String[] args) {
        double creditHours = 0;
        double gradePoints = 0;

        System.out.println("Enter number of classes");
        Scanner scanner = new Scanner(System.in);
        double numClass = scanner.nextInt();
        DecimalFormat df = new DecimalFormat("#0.00");

        for(double i = 1; i <= numClass; i++){
            System.out.println("Enter credit hours for class "+ i);
            double aCreditHour = scanner.nextInt();
            creditHours += aCreditHour;
            System.out.println("Enter grade for class "+ i);
            String letter = scanner.next();
            if(letter.equals("A")){
                gradePoints = gradePoints + (4 * aCreditHour);
            } else if (letter.equals("B")){
                gradePoints = gradePoints + (3 * aCreditHour);
            } else if (letter.equals("C")){
                gradePoints = gradePoints + (2 * aCreditHour);
            } else if (letter.equals("D")){
                gradePoints = gradePoints + (1 * aCreditHour);
            } else if (letter.equals("F")){
                gradePoints = gradePoints + (0 * aCreditHour);
            }
        }

        System.out.println("Your GPA is: " + DecimalFormat.format(gradePoints / creditHours));
    }
}

我知道问题出在DecimalFormat之后的.format位,我只是不知道如何解决。 我只是想知道我应该用什么代替它

首先实例化DecimalFormat:

    DecimalFormat dFormat = new DecimalFormat();
    System.out.println("Your GPA is: " + dFormat.format(gradePoints/creditHours));

您正在直接调用非静态方法(DecimalFormat.format),这是不可能的! 这样只能调用静态方法,另一种方法是实例化它们并通过instance.method()调用它!

暂无
暂无

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

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