看来,当你使用Java输入数字时,编译器会自动将其读取为整数,这就是为什么当你输入(long)6000000000(不在整数范围内)时会抱怨6000000000不是整数。要更正此问题,我必须指定6000000000L。我刚刚了解了此规范。
6000000000
6000000000L
还有其他数字规范,例如short,byte,float,double吗?似乎这些内容会很好,因为(我假设)如果你可以指定要输入的数字是短数字,那么Java不必强制转换它-这是一个假设,如果我输入错误,请更正我。我通常会自己搜索这个问题,但我什至不知道这种数字规范叫什么。
对于long(例如39832L),float(例如2.4f)和double(例如-7.832d)有特定的后缀。
long
39832L
float
2.4f
double
-7.832d
如果没有后缀,并且是整数类型(例如5623),则假定为int。如果不是整数类型(例如3.14159),则假定为double。
5623
int
3.14159
在其他情况下(byte,short,char),你需要投,因为没有具体的后缀。
byte,short,char
Java规范允许上部和下部壳体的后缀,但是上壳体版本为longs的优选的,因为上壳体L不太容易混淆以数字1比下壳体l。
L
1
l