[英]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.