浮点数的范围和精度

246 阅读1分钟

IEEE标准提供了两种主要的浮点数格式: 单精度(32位)和双精度(64位)。分为三个部分:符号指数小数指数部分决定了浮点数的范围。而小数部分的位数决定了精度。(见下图)

单精度浮点数.png

双精度浮点数.png

单精度中,指数长度为8位,小数部分占23位。由于是有符号型,所以对应的指数范围是-128~128。所以单精度的范围是-2^128到2^128,约等于-3.40 * 10^38 至 3.40 * 10^38(或者写成 -3.40E38 ~ +3.40E38)。由于小数部分占23位,而2^23=8388608。对应的10进制是7位。所以精度的范围就是6到7位(即有效数字一般为6到7位)。

同理,双精度中,指数长度是11位,小数部分占52位。所以,双精度的范围是-2^1024~2^1024.约等于-1.797E308 ~ 1.797E308。小数部分占52位,而2^52= 4,503,599,627,370,496。对应的10进制是16位。所以精度的范围就是15到16位(即有效数字一般为15到16位)。