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

来源:学生作业帮助网 编辑:作业帮 时间:2024/03/28 23:02:40

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次方)