C语言中关于“有效数字”的问题问题如图所示,是怎么原因呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/02 08:56:42
C语言中关于“有效数字”的问题问题如图所示,是怎么原因呢?
xR]oP+dW~~nīn8Pu>pǢ!P`/9m_-8/›syD+n6 kOl]+]f+q^9BٶITOE/:G.g2@fKl!MǩN ȺRS)er{f%*1 6cqQ"8E *ET%0XG$YFHP5>ZBe4 V yKx%A8Q5Y9MXx$XNDWniUE&yZts$Ń6i9 yb:n|z)&⶯7Bw8=+AOf_Ͱ0xf50\ ѻ^*d99]YU2C 0/".TdҹĦp߼uv0!ЖYgyv {Eי;&`!?G< xx8OmëA' o|^UΤ,|

C语言中关于“有效数字”的问题问题如图所示,是怎么原因呢?
C语言中关于“有效数字”的问题

问题如图所示,是怎么原因呢?

C语言中关于“有效数字”的问题问题如图所示,是怎么原因呢?
计算机存取数是用二进制代码实现的,数据转换一般都有损失
2.2是十进制数,用二进制表示为
2的1次方+2的(-3次方)+2的(-4次方)+2的(-7次方)+2的(-8次方).
因为数据类型限制了数据二进制代码的位数,所以,必然有一些损失
float是32bit 01代码,其中26bit为尾数,6bit为幂指数
2.2乘2的(26-最高次幂-1)次方=2.2乘2的24次方还不是整数,所以必然有损失
当然,也有一些数字是不会有损失的,比如2.375=2的1次方+2的(-2次方)+2的(-3次方)