js中0.1+0.2 != 0.3

JavaScript中的0.1+0.2不等于0.3,这是由于浮点数精度缺失,JS使用IEEE 754双精度64位标准,只能精确存储小数点后52位。在进行0.1和0.2相加时,二进制运算导致第53位进位,因此转换回十进制时不等于0.3。
console.log(0.1+0.2);//0.30000000000000004

在js中0.1+0.2的结果不等于0.3,这是由于精度缺失造成的,JS数字采用IEEE 754 双精度 64 位浮点数来存储,在js中数字只能保存小数点后52位,第53位为0省略,为1进1,0.1的二进制加0.2的二进制的和第53位是1,向前进1,后面的省略,所以转换成十进制不等于0.3

实际得到的0.2的二进制加0.3的二进制的结果为

0.0100110011001100110011001100110011001100110011001101
let str4 = '0100110011001100110011001100110011001100110011001101'
console.log('二进制和的之际结果为 ' + str4.length);//52

转换为是进制是0.30000000000000004

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值