53位bit
原因尾数有个默认位为1. 52位+ 1位就是53了
实验
背景知识
2^52 = 4503599627370496
将第一位设置成6 (小于2^53次方)
double d = 6503599627370496L;
for (int i = 0; i < 100; i++) {
d++;
System.out.println((long)d);
}
结果正常+1
将第一位设置成9 (大于2^53次方)
double d = 9503599627370496L;
for (int i = 0; i < 100; i++) {
d++;
System.out.println((long)d);
}
结果始终为 9503599627370496