3.4是双精度数, 没有加F。'下面是百度出来的解析:float的小数位只有23位,即二进制的23位,能表示的最大的十进制数为2的23次方,即8388608,即十进制的7位,严格点,精度只能百分百保证十进制的6位运算。 double的小数位有52位,对应十进制最大值为4 503 599 627 370 496,这个数有16位,所以计算精度只能百分百保证十进制的15位运算。
在Java中,浮点数字字面量默认被解析为双精度(double)。如果想要表示一个单精度(float)数,需要在数字字面量后面添加字母"f"或"F"作为后缀。至于为何字面量默认是双精度,可能是为了提供更高的精度和更安全的计算,适用于更多的场景
3.4是双精度数, 没有加F。'
下面是百度出来的解析:
float的小数位只有23位,即二进制的23位,能表示的最大的十进制数为2的23次方,即8388608,即十进制的7位,严格点,精度只能百分百保证十进制的6位运算。
double的小数位有52位,对应十进制最大值为4 503 599 627 370 496,这个数有16位,所以计算精度只能百分百保证十进制的15位运算。