一、为什么js中0.1 + 0.2 !== 0.3

0.1 + 0.2 = 0.3000000000004

二、原因

1.计算机中所有数据都是以2进制形式保存,数字会先转化为2进制计算,然后把计算结果转化成10进制

2.小数的二进制都是无限循环的,js中浮点数用64位固定长度来表示。很多语言也面临着这个问题比如java,c++,dart