C语言 实型数 精确度

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:33:52
C语言的实型数float是以32位来存储的,其中24位存储小数部分(包括符号)那么其能表示的数的范围就是+-(1+2的1次方+2的2次方+........+2的23次方)有效数字超过了7位,8位存储指数部分(包括符号)则能表示数的范围为+-127远高于+-38,可书上书说float的数值范围就在3.4*10的-38次方~3.4*10的38次方,有效位数7,这是为什么?到底该怎么算?

float的数值范围就在3.4*10的-38次方~3.4*10的38次方
这句话说的是 float 能表示的所有数中最大值和最小值。

有效位数7
这意思很像我们通常说的“保留7位有效数字”。如果二进制位数为b,转换成十进制有效数字位数为d,则有以下关系:
d = b * lg 2
lg 是常用对数函数,也就是以10为底的对数。