为什么会抛出异常:
float var1 = 24.0;
System.out.print(var1);
但这不是:
float var1 = 24;
System.out.print(var1);
我知道,在第一种情况下,我需要在数字末尾添加“f”以将其与 double 区分开来。但我不明白为什么编译器在没有小数点的情况下没有跳过“f”的问题。我想也许 Java 将它视为 int,即使我已将变量声明为 float,但是 ((Object)var1).getClass().getName()
结果 0java.lang.Float
.
最佳答案
24.0
是一个 double
文字,无法自动(隐式)转换为 float
。 24
是一个 int
文字,所以您在这里看到的是 widening primitive conversion从 int
到 float
。
关于java - 为什么 float 可以变成整数而不抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62839329/