java - 为什么 float 可以变成整数而不抛出异常?

标签 java types primitive

为什么会抛出异常:

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 文字,无法自动(隐式)转换为 float24 是一个 int 文字,所以您在这里看到的是 widening primitive conversionintfloat

关于java - 为什么 float 可以变成整数而不抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62839329/

相关文章:

java - 使用 int 与 Integer

java - 从 Google Play 商店安装应用程序会出现 Firebase 身份验证错误,但从我的计算机安装相同的 APK 可以完美运行

java - Play Framework 2.6 : NoClassDefFoundError: play/cache/DefaultCacheApi

java - 直接将java对象导入到mysql表中,列作为对象的变量

java - 如何将Xpath的结果变成我的输出结果?

haskell - 为什么 GHC 拒绝允许这种存在类型函数?

c - C 中数字的隐式类型

java - Integer.class 与 int.class

scala - 在 Scala 中转换仿函数 (F[A] => G[A])(cats 或 scalaz)

Objective-C 原始数组