Java中的float和double

浮点数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位

你可能感兴趣的:(Java,java)