0.1+0.2在编程上为什么等于0.30000000000……04?????

360U3370165022 |浏览619次
收藏|2022/05/07 21:07

满意回答

2022/05/07 21:27

在计算机处理数据时用二进制表示,但并不是所有小数都可以用「完整」的二进制来表示的,比如十进制 0.1 在转换成二进制小数的时候,是一串无限循环的二进制数,计算机是无法表达无限循环的二进制数的,毕竟计算机的资源是有限。因此,计算机只能用「近似值」来表示该二进制,那么意味着计算机存放的小数可能不是一个真实值,现在基本都是用 IEEE 754 规范的单精度浮点类型或双精度浮点类型来存储小数的,根据精度的不同,近似值也会不同。把 0.1 转换成二进制的结果是0.0001100110......而0.1 的二进制浮点数转换成十进制的结果是 0.1000000014901161193847656250.2 的二进制浮点数转换成十进制的结果是 0.20000000298023223876953125这两个结果相加就是 0.300000004470348358154296875

氿叄

其他回答(2)
  • 这个是计算机中的基础常识,在计算机内部,小数(浮点)是用二进制近似表示的,所以任何浮点的运算是有误差的,具体你可以参阅有关《IEEE754》标准(它是有关浮点存储及运算过程的理论基础)
    回答于 2022/05/07 22:20
  • 这个应该是doule类型精度决定的
    回答于 2022/05/07 21:55
0人关注该问题
+1

 加载中...