console.log(0.1 + 0.2 == 0.3) // false console.log(0.2 + 0.2 == 0.4) console.log(0.1 + 0.3 == 0.4) console.log(0.13 + 0.2 == 0.33) console.log(0.3 + 0.4 == 0.7) console.log(1.1 + 0.2 == 1.3)
以上代码为什么只有第一条输出false,而其他都是true ? 我知道 0.1 + 0.2 = 0.30000000000000004 ,但我想知道为什么。
내가 와서 좀 살펴볼게
JS 소수 덧셈 문제가 있나요? -PHP 중국어 웹사이트 Q&A-JS 소수점 덧셈에 문제가 있나요? -PHP 중국어 홈페이지 Q&A
꼭 보고 배워보세요.
假设十进制数字为整数10,在计算机中表示方式为 : 1010,二进制转换十进制的方法为:
即为:
那么小数的表示方法,假设10进制数为0.5,在计算机中表示为0.1,因为计算机只有0和1这两位,而换算方法为:
同理可见计算机能表示的浮点数有哪些 :
同理可见,0.2在计算机中表示为 :
后续位数你可以自己算,所以在计算机中0.2的表示方法只是一个无线接近于0.2的小数,但永远无法精确的表示出0.2,所以0.2 + 0.1 ≈ 0.3,而永远不会等于0.3