一、为什么js中0.1 + 0.2 !== 0.3二、原因1.计算机中所有数据都是以2进制形式保存,数字会先转化为2进制计算,然后把计算结果转化成10进制2.小数的二进制都是无限循环的,js中浮点数用64位固定长度来表示。很多语言也面临着这个问题比如java,c++,dart 一、为什么js中0.1 + 0.2 !== 0.30.1 + 0.2 = 0.3000000000004 二、原因 1.计算机中所有数据都是以2进制形式保存,数字会先转化为2进制计算,然后把计算结果转化成10进制 2.小数的二进制都是无限循环的,js中浮点数用64位固定长度来表示。很多语言也面临着这个问题比如java,c++,dart