浮点数float和double在内存中是按科学计数法来存储的,取值范围是由指数的位数来决定的,精度是由尾数的位数来决定的。
浮点数 | 精度/位数 | 符号位S | 指数位E | 扩展范围(指数的取值范围) | 最大/小值(取值范围) | 尾数位M | 尾数取值范围(精度) |
---|---|---|---|---|---|---|---|
float | 32bit单精度 | 1bit(0正1负) | 8bit | -2^7~2^7-1(-128~127) | 2^127(10^38级别的数) | 23bit | 8388608,7位,精度为6~7位 |
double | 64bit双精度 | 1bit(0正1负) | 11bits | -2^10~2^10-1(-1024~1023) | 2^1023(10^308级别的数) | 52bit | 45035_99627_37049_6,16位,精度为15~16位 |