为什么浮点型有误差?

img


-** 为什么a后面的还有其他小数啊,不应该是直接等于0.4?,这个为什么会有误差啊**

  • 还有一个疑问就是:是只有整数转换成浮点型产生误差?如果直接赋值给他还会有误差?
  • 列如:按a=4.0;
  • 上课时说过但是忘了,求解答一下,谢谢

浮点数天生就有误差......

要理解这个问题就从IEEE754的编码格式入手,浮点类型是一个离散的数据集合,并不是连续,0.4不在这个集合中,编译器会解析一个最接近0.4的编码;更详细的内容参照C语言浮点数据类型详解及常见的坑