Java:不兼容的类型

标签 java

import java.text.*;
import java.util.*;
public class Proj3 {
    public static void main(String[]args){
     // DecimalFormat df = new DecimalFormat("#0.00”);
     Scanner s = new Scanner(System.in);
     int TotalHours = 0;
     int TotalGrade = 0;

     System.out.print("How many courses did you take? ");
     int Courses = Integer.parseInt(s.nextLine());
     System.out.println("");

     int CourseNumber = Courses - (Courses - 1);
     while (Courses > 0){
         System.out.print("Course (" + CourseNumber +"): How many hours? ");
         int Hours = Integer.parseInt(s.nextLine());
         TotalHours = TotalHours + Hours;

         System.out.print("Course (" + CourseNumber +"): Letter grade? ");
         char Grade = s.nextLine().charAt(0);

         if (Grade == 'A'){
             TotalGrade = TotalGrade + (4 * Hours);
            }
         if (Grade == 'B'){
             TotalGrade = TotalGrade + (3 * Hours);
            }
         if (Grade == 'C'){
             TotalGrade = TotalGrade + (2 * Hours);
            }
         if (Grade == 'D'){
             TotalGrade = TotalGrade + (1 * Hours);
            }

         Courses = Courses - 1;
         CourseNumber = CourseNumber + 1;
        }
     Double GPA = TotalGrade / TotalHours;
     System.out.println(df.format(GPA));

    }
}

这是一项作业,我不知道如何解决我的问题。 Double GPA = TotalGrade/ToutalHours; 行出现了 Incompatible Types 错误。

另外,我应该在主程序的开头包含 DecimalFormat df = new DecimalFormat("#0.00”); 行,但它不起作用。

任何事情都非常有帮助。谢谢

最佳答案

 Double GPA = TotalGrade / TotalHours;

Autoboxing是 Java 编译器在原始类型和它们相应的对象包装器类之间进行的自动转换。因此 Double 是原语 double 的包装类,Integer 是原语 int 的包装类。

您的 TotalGrade/TotalHours 生成的是 int,但您试图将其分配给类型为 Double 的对象。执行以下任一操作:

double GPA = (double)TotalGrade / TotalHours;

或者,

Double GPA = (double)TotalGrade / TotalHours;

关于Java:不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19602483/

相关文章:

java - 如何在 Spring 中通过带有类参数的泛型类型创建单例?

JAVA类以女孩为对象使用

java - 使用 PowerMock 进行部分模拟静态

java - 在 mac 10.8 上执行一个 jar

java - org.omg.CORBA.Object objRef = orb.resolve_initial_references ("NameService"上出错);

java - 在 Spring 中保存两个模型之间的多对多关系

java - 从 GET 请求中获取 Jersey 中的 header

java - 类似字典的数据结构。这是一个好习惯吗?

Java异步客户端,意外行为

java - 使用 HTTPS 启动 Spring Boot 应用程序