为什么最后那个0.1+0.2==0.3然后是false?

img


最开始学,为什么那个0.1+0.2==0.3
false
为啥呀?

这个问题你以后会经常遇到,记住它。浮点数的结果数值是个近似值,浮点型的计算,你会发现后面还跟着一堆
就像这样

img

浮点数相加结果会有问题,如果是整数就没问题了

img

涉及到一点原理。你把0.1试着转成二进制就会发现循环了,存不下就会发生精度损失。

这个现象属于计算机组成原理这门课的范畴。
你可以尝试用ieee 754的标准来将一个小数表示为二进制,具体的原理可以参考https://www.bilibili.com/video/BV1BE411D7ii?p=24

0.1和0.2在转换成二进制后会无限循环,由于标准位数的限制后面多余的位数会被截掉,此时就已经出现了精度的损失,相加后因浮点数小数位的限制而截断的二进制数字在转换为十进制就会变成 0.30000000000000004。****