Java定义的long和float为什么需要加L和F?

定义long类型变量为什么需要加L?


基本数据类型int,占用4个字节,取值范围为-231 ~ 231-1,转换为十进制是-2147483648 ~ 2147483647
基本数据类型long,占用8个字节,取值范围为-263 ~ 263-1,转换为十进制是-9223372036854775808 ~ 9223372036854775807


我们知道,在Java中,整数的默认数据类型是int。当我们将一个整数赋值给任何类型变量时,这个整数默认是int型。
如果这个数字小于int的最大值,可以直接给long赋值,因为int的取值范围小于long型,可以自动转换。
如果这个数字大于int的最大值,此时不能自动转换,我们就需要在数字后面加上L来进行强转,否则会报错。

Java定义的long和float为什么需要加L和F?




定义float类型变量为什么需要加F?


基本数据类型float,占用4个字节,取值范围为-3.40E+38 ~ +3.40E+38
基本数据类型double,占用8个字节,取值范围为-1.79E+308 ~ +1.79E+308


在Java中浮点数的默认数据类型是double,当我们将一个浮点数赋值给任何类型变量时,这个浮点数默认是double型。
如果我们将整数赋值给float,因为float的取值范围大于int,会自动进行转换
如果我们将浮点数赋值给float,因为float的取值范围小于double,此时需要在后面加上F进行强转


Java定义的long和float为什么需要加L和F?