浮点数在计算机中的储存方式
浮点数是基本数据类型,有double和float,其由整数和小数部分组成。
1、浮点数的表示格式
1.1、十进制格式
0.00172=1.72*10^-3,1.72为系数(或尾数),10^-3为指数,10为指数的基数,-3位为指数的阶数。科学计数法表示为1.72E-3,由于1<=1.72<10,因此称系数是规格化的。
1.2、二进制格式
比如19.625,整数部分19的二进制为10011,而小数部分0.625的二进制为101,则总体表示为10011.101,科学计数法表示为1.0011101*2^4
因为小数点后第一位为2^-1,小数点后第二位为2^-2,依次类推。那么0.625=0.5*1+0.25*0+0.125*1=101。
2、浮点数的存储
IEEE 标准754将浮点数的存储分三个部分:
符号位
指数位
有效数字(系数位)
单精度浮点数32位=1位符号位+8位指数位+23位有效数字
双精度浮点数64位=1位符号位+11位指数位+52位有效数字
2、浮点数的存储
IEEE 标准754将浮点数的存储分三个部分:
符号位
指数位
有效数字(系数位)
单精度浮点数32位=1位符号位+8位指数位+23位有效数字
双精度浮点数64位=1位符号位+11位指数位+52位有效数字
最后,由于计算机中保存的小数其实是十进制的小数的近似值,并不是准确值,所以,千万不要在代码中使用浮点数来表示金额等重要的指标。