002 浮点类型
2020-01-01 本文已影响0人
赵者也
浮点型可表示单精度、双精度和扩展精度值。C++ 标准指定了一个浮点数有效位数的最小值,然而大多数编译器都实现了更高的精度。通常,float 以1个字(32比特)来表示,double 以2个字(64比特)来表示,long double 以3或4个字(96或128比特)来表示。一般来说,类型 float 和 double 分别有 7 和 16 个有效位,类型 long double 则常常被用于有特殊浮点需求的硬件,它的具体实现不同,精度也各不相同。
为什么 float 有效位是 7,最准确的是 6 位 ?
2^23 = 8388608,结果是 7 位数,最多能表示7位有效数字,但绝对能保证的则是 6 位,8388608 以下的保证 7 位,8388608 以上的数字可以保证 6 位 。