js中数字精度缺失问题如0.1 + 0.2 !== 0.3

本文探讨了JavaScript中数字精度缺失的问题,例如0.1 + 0.2不等于0.3。原因是JavaScript遵循IEEE754标准,使用64位表示数字,导致进制转换和对阶运算过程中精度损失。通过理解二进制表示和运算过程,可以更好地理解这种现象。
摘要由CSDN通过智能技术生成

前言

在面试或者实际开发过程中我们可能都碰到过对数字进行运算,但是有时候的运算结果又与我们预期的结果不相符!例如:0.1 + 0.2 按照我们计算应该是0.3但是在js中计算得到的结果缺不等于0.3,造成这个的原因就是js在运算的过程中精确丢失了。由于这个问题自己也在网上找了看了,所以总结记录下自己在学习过程中遇到困惑。

js中计算导致精度缺失的实例

精度缺失实例
我们可以看到前面三个计算的结果都产生了精度缺失问题,但是后两个又是正常的那是怎么回事呢?在这之前我们需要了解JavaScript是如何表示数字的

javascript是如何表示数字

JavaScript使用Number类型表示数字(整数和浮点数),遵循IEEE754标准通过64位来表示一个数字,通过图表看一下数字在内存中的表示
在这里插入图片描述
图片文字说明:

  • 第0位:符号位,0表示整数,1表示负数(s)
  • 第1位到第11位:储存指数部分(e)
  • 第12位到第63位:储存小数部分(即有效数字 f)

补充:js最大安全数是 Number.MAX_SAV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值