为什么在 java 中的 Float 数据类型中存储一个本质上是整数的文字值,最后没有 'f' 不会出错?

Why storing a literal value which is whole number in nature in a Float datatype in java without 'f' at the end don't give an error?

float firstFloatValue = 5;

float secondFloatValue = 2.5;

为什么末尾没有 f 的第一个变量不会出错,而第二个变量会出错? 我知道如果我们不在文字的末尾放置 f,它就会被假定为双精度数。但是为什么在最后没有 f 的情况下用 5 初始化第一个变量时没有错误。 请帮助我,我是 Java.

的新手

错误信息:

Main.java:12: error: incompatible types: possible lossy conversion from double to float
        float secondFloatValue = 2.5;

您没有包含错误消息(始终包含 Whosebug 上的错误消息)。

没有类型后缀 f(如 2.5f),文字 2.5 被解释为 double,不适合 float ]变量。

由于类型转换 firstFloatValue 示例 int 被类型转换为 float(小内存数据类型转换为高内存数据类型)默认行为。 但是在第二个 double 中不能类型转换为 float