JS中 0.1 + 0.2不等于0.3的问题

出现原因

在JS中数字采用的IEEE 754的双精度标准进行存储,不管是小数还是整数存的都是64位

64位又包括3个部分:符号位,指数位,有效位

在这里插入图片描述
0.1+0.2 等于0.3:0.3是怎么存的呢,首先0.3会转成二进制,二进制再转成科学记数法,(转换过程中会出现一个循环0011会不断循环)

符号位:正数存的是0,负数存的是1
指数位: 11位—》10的负二次方
有效位:52位

参考文档
在这里插入图片描述

只有0.1+0.2会出现这个问题,其他不会
在这里插入图片描述

解决方法

最好的方法就是我们想办法规避掉这类小数计算时的精度问题就好了,那么最常用的方法就是将浮点数转化成整数计算。因为整数都是可以精确表示

toFixed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值