整数文字

Integer literals

我不明白为什么在 Java 中你可以为浮点值分配一个双精度值,例如:

float number=456.7F;

但是你不能对整数和浮点数做同样的事情,比如:

int numb=56798434L;

在 C++ 中这些东西似乎有效。

456.7F 文字不是 double 值,它是 float 值。双后缀是d(或者没有后缀)也会产生编译错误:

float f = 456.7d; 

Java 始终需要对数字转换进行显式转换,这可能会导致溢出或精度损失。

您不能在不强制转换的情况下将容量较大的类型的值分配给容量较小的类型。 long可以存储更大的数字,所以不能赋值给int