c语言float四舍五入 float型保留几位小数和有效数字( 二 )


因此对于32为单精度浮点数:在IEEE-754标准中,32位浮点数X的真值可表示为:
X = (-1)^S×(1.M)×2 ^(E-127);
精度丢失了解了float型数据的存储原理,接下来了解一下float精度丢失的原因,以浮点数2.7为例:
首先,十进制转换成二进制 。由于2.7无法用二进制精确表示,因此此处出现一次精度丢失 。
2.7 => 10.10110011001…
然后,用IEEE标准表示二进制浮点数,得到s=0,M=1.010110011001…,E=1 。
10.1011001… => (-1)^0 × 1.01011001… × 2^1
最后,按照IEEE标准保存数据 。此时是单精度浮点数,M只能保存小数点后23位,多余的部分被丢弃了,因此此处又一次精度丢失 。
精度丢失示意
溢出既然存储有位数限制,那么溢出就很好理解了 。超过最大能表示的数就是上溢,超过最小能表示的数就是下溢,只要计算出最大和最小能表示的数十多大就可以得出上下溢出的极限:
上溢极限:
上溢极限
下溢极限:
下溢极限


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: