【问题标题】:After I compile my Java program, it says error: incompatible types: double cannot be converted to double[]在我编译我的 Java 程序后,它说错误:不兼容的类型:双精度不能转换为双精度 []
【发布时间】:2014-12-09 14:47:33
【问题描述】:

我能做些什么来解决这个问题?

这是代码开头的一部分:

double fee;
double tuition;
double[] residence, total;

这是错误的部分:

total = tuition + fee;

错误:不兼容的类型:双精度不能转换为双精度[]

我该怎么做才能解决这个问题?

【问题讨论】:

  • 这些变量代表什么?你为什么想要一个数组([] 的东西)? (你在哪里提到fee?)

标签: java compiler-errors double


【解决方案1】:

您在这里所做的是声明了 4 个变量:feetuition 的类型为 double,而 residencetotal 的类型为 double[] - 即一个 数组 double 类型的元素。

您将tuitionfee 相加,编译器希望您将结果放入另一个double 类型的变量中,但您的代码要求将其存储到@987654331 @ 类型为 double[]double 的数组),编译器不知道如何解决。

你可以

  1. 告诉编译器将结果存储在total 的哪个元素中, 例如:

    total[0] = tuition + fee
    
  2. total 声明为具有单个double 的类型,而不是 一个数组:

    double fee;
    double tuition;
    double total;
    double[] residence;
    
    // this is now okay
    total = tuition + fee;
    
    // this is again a type error because residence is still an array
    residence = total;
    

【讨论】:

  • 尽管 Java 允许在一个声明中使用多个变量,但一次声明一个,如本答案所示,可以更轻松地找到声明并降低问题中出现问题的风险。
  • 我这样做了,它修复了我的程序。谢谢!
【解决方案2】:

对于数组,您必须指定一个索引。喜欢:

total[0] = tuition + fee;

在这种情况下,数组是双精度数的集合,一个数组不能等于一个双精度数,它可以在数组的不同索引处有多个双精度值。

【讨论】:

    【解决方案3】:

    我认为你是故意这样做的,如果我错了,请纠正我

    double tuition, residence, total;
    

    您执行此操作的方式导致 residencetotal 是双精度值数组,而不是像 tuition 这样的双精度值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      相关资源
      最近更新 更多