JavaScript中精度丢失那点事儿

本文探讨了JavaScript中精度丢失的现象,包括浮点数运算和大整数问题,深入讲解了计算机数字存储方式——IEEE754标准,以及如何通过Math.js, big.js, decimal.js等库来解决精度问题。" 52056974,5691462,SAP MRP MD04需求库存报表解析与扩展,"['SAP', 'MRP', '报表开发']
摘要由CSDN通过智能技术生成


在开发项目的过程中,我们难免会遇到数值计算的场景,比如电商类项目的金额计算等,此时,我们通常会遇到数值计算结果和我们的预期不一致的情况,通常发生这种情况的原因都是因为JavaScript精度丢失的问题,接下来的内容将会从JavaScript中发生精度丢失的常见情况、发生的原因以及解决方案三个方面进行展开。

一、JavaScript精度丢失常见情况

JavaScript精度丢失主要发生在小数、大数中,主要有以下几种情况:

1、浮点数运算(加减乘除)

在这里插入图片描述

嗯?0.1+0.2 不是等于0.3嘛?后面一连串的是什么玩意?

2、大整数

在这里插入图片描述

啊这,16位数和17位数居然相等,一个数居然和多个数相等

二、计算机数字存储方式——IEEE754

在我们去探究以上现象出现的原因之前,先了解下计算机数字存储方式。

JavaScript的数字存储方式符合IEEE754的规范,那什么是IEEE754?
IEEE754为IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985)&#x

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值