JS中0.1+0.2不等于0.3的问题
一个经典案例:
0.1 + 0.2 !== 0.3;而是0.1 + 0.2 = 0.30000000000000004
JavaScript使用定义的Number类型来表示数字(没有区分int或float的类型),遵循IEEE 754的标准,用64位存储一个数。(1+11+52)
运算过程:
它们在相加的时候第一步会将数字从十进制数转换成二进制数,这个时候因为0.1和0.2转换成二进制的时候尾数发生无限循环,js引擎将对其截取,这个时候精度丢失,截取之后的结果再进行相加并转换。
解决方法:
将浮点数转换成整数,相加之后再进行除法运算

浙公网安备 33010602011771号