float 和 int 之间的除法不会编译

Division between float and int won't compile

首先,我对 Java 还是很陌生,如果解决方案很明显,请原谅。

我编写的代码应该将特定数字范围内的每个第二个数字(在本例中为 -5 到 20)除以一个浮点数,但 Java 无法编译。

  public class exerciseD {
     static float Division (float r) {

      int n = (-5);
      float x = 0;

      if (n <= 20) {
       float x = n * r; 
       System.out.println(x);
       n = n + 2; 
      }
      else 
          return x;
  }
  public static void main(String[ ] args) {

      float y = Divison(22.5);
      System.out.println(y);

      }
  }

错误信息:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method Divison(double) is undefined for the type exerciseD
at exerciseD.main(exerciseD.java:45)

我在这段代码中做错了什么?我只是不知道 double 的问题是什么。每个变量要么是 float 要么是 int 不是吗?

谢谢。

好吧,您有多个错误,第一个是在 if 语句中,您正在定义另一个 X 变量,该变量已在上面定义。 第二个错误是方法名称是 Division 而不是 Divison

第三个错误你不能将 double 作为参数传递给 float 变量,因为 你叫 Division(22.5) 它应该是 Division(22.5F) 以表明它是浮点数,否则它将作为 double 传递,这将是 不兼容的类型可能的有损转换从 double 到 float

第四个错误是您在 if 块

处缺少 Division 方法的 return 语句