教你一文解决 js 数字精度丢失问题

52 篇文章 2 订阅
订阅专栏

一、关于为什么要解决精度丢失

可以看下例子,因为js失去精度问题也是常见的问题,正常我们可以四舍五入或者 toFixed保留小数这种去解决
在这里插入图片描述
现在遇到问题是我们明知道计算结果是等于0.01的但是最后的结果确实true,如果我们遇到运算问题,小数数值比对问题,那么我们就必须要去解决他,否则也就会出现上者情况,出现逻辑判断出错问题

二、怎么解决js的计算精度丢失问题?

正常来说如果是 小数点保留后2位、3位等等,我们可以使用常见的 * 百位数、千位数 实现整位结果后 将结果在除以对应的数位实现结果,如下

console.log(5.22 - 5.21);

在这里插入图片描述

 console.log((5.22 * 100 - 5.21 * 100) / 100);

在这里插入图片描述

根据上方的描述我们再去着眼看我们最开始的例子
在这里插入图片描述
结果也就成了我们想要的结果

三、toPrecision 特定方法返回四舍五入长度字符串

当然toFixed也是可以实现对应的长度取舍效果的,因为各大浏览器针对toFixed的各类结果都是不同的有兴趣的同学可以参考下下面这篇文章
toFixed详解

在这里我们只介绍 toPrecision 参照方法详解
在这里插入图片描述

那么我们也就知道了此方法是用来干什么的
当然再有一点也就是从左到右 不为0的位置开始计算

上方举例 我们的结果是0.01

如果我们去使用toPrecision的话,那么要填写的参数则为1

在这里插入图片描述
返还的结果也就是我们想要的 0.01

然后我们搭配 parseFloat 对字符串进行一个浮点数值转换后,然后对比得出最后结果

console.log(5.22 - 5.21 < 0.01);
console.log((5.22 * 100 - 5.21 * 100) / 100 < 0.01);
var num = 5.22 - 5.21;
console.log(parseFloat(num.toPrecision(1)) < 0.01);

在这里插入图片描述

结语

✨ 每天创作一点点
✨ 开心快乐一整天
✨ 点赞关注加收藏
✨ 美好一天又一天

铁铁们 感谢支持 我需要你们的三连 👍👍👍
请添加图片描述

JavaScript 精度丢度丢失
今天最成功
06-16 582
Snandy If you cannot hear the sound of the genuine in you, you will all of your life spend your days on the ends of strings that somebody else pulls. JavaScript数字精度丢失问题总结 本文分为三个部分 JS...
js精度丢失解决办法
yufaxingxing的博客
12-05 451
/** * 加法运算,避免数据相加小数点后产生多位数和计算精度损失。 * * @param num1加数1 | num2加数2 */ function numAdd(num1, num2) { var baseNum, baseNum1, baseNum2; try { baseNum1 = num1.toString().split(".")[1]....
js处理long精度丢失
strggle_bin的博客
04-15 1327
其中,WRITE_DATES_AS_TIMESTAMPS 表示是否将日期类型序列化为时间戳类型,默认为 true,这里设置为 false 如果需要将日期类型序列化为时间戳类型,则不需要设置此属性。这是因为在 JavaScript 中,数字类型默认会被转换为双精度浮点数,而双精度浮点数的精度有限,只能精确表示 2 的 53 次方以内(即 Number.MAX_SAFE_INTEGER,约为 9 x 10^15)的整数。注意:此方式,会影响所有的接口,所有接口中的数字字段,都会被转换为字符串输出。
js数字计算时丢失精度问题解决
最新发布
m0_66908041的博客
07-31 814
JavaScript 中,数字乘以 100 后精度丢失通常与浮点数的表示方式有关。JavaScript 使用 IEEE 754 双精度浮点数来表示数字,这可能会导致一些精度问题
JavaScript数字精度丢失问题总结
weixin_33860147的博客
12-03 462
本文分为三个部分 JS 数字精度丢失的一些典型问题 JS 数字精度丢失的原因 解决方案(一个对象+一个函数)   一、JS数字精度丢失的一些典型问题   1. 两个简单的浮点数相加 0.1 + 0.2 != 0.3 // true   Firebug 这真不是 Firebug 的问题,可以用alert试试 (哈哈开玩笑)。   看看Java的运算结...
js运算精度丢失
ZWP_990527的博客
11-30 9905
js运算精度丢失问题(最终运算结果多了很多小数位)
js精度缺失问题
xin_jiao的博客
09-19 219
JavaScript采用的是双精度浮点数表示法,也称为IEEE 754标准,采用64位浮点数表示法,能够表示的最大值为1.7976931348623157e+308,最小值为5e-324,但在进行小数的计算过程中,浮点数的二进制表示往往无法精确表示,就会产生精度丢失。那么,为什么会出现这样的情况?但是对于一个浮点数来说,因为小数点的存在,小数点的位置不是固定的。总而言之,小数点精度丢失问题是由于JavaScript使用的浮点数表示法的特性所致,需要在开发中注意,并考虑使用其他方法或工具来解决精度问题
关于js精度缺失问题
weixin_71972062的博客
09-17 794
JavaScript是一种广泛使用的编程语言,但在处理浮点数运算时,有时会出现精度缺失问题。本文将探讨JavaScript精度缺失的原因及几种解决方案。
Go Json Unmarshal(反序列化) 丢失数字精度
华鑫的专栏
08-07 41
20个选择,3道编程选择有单双选,设计范围很广,包括java、C++、python、数据库、数据结构算法最多,数据库有一个我没听过,好像是叫SMBxx。uu们,华为秋招已经开始了,欢迎联系我如何投递,锁定简历, 进行机考辅导!引流:华为,大疆,百度,小米,联发科,台积电,oppo,中兴,海康,地平线,平头哥,f。本人:211硕,计算机技术(计算机专硕),数据挖掘求职目标:安徽合肥,大数据开发,数据分析投递公司:互联网:zoom,蔚来,科大讯飞,大智慧,银行:徽商、浦发、
深度学习:卷积神经网络从入门到精通
热门推荐
GitChat
03-28 2万+
内容简介 全面介绍各种卷积神经网络的模型、算法及应用,指导读者把握其形成和演变的基本脉络,以帮助读者在较短的时间内从入门达到精通的水平。有兴趣的读者可以从本书开始,通过图像分类、识别、检测和分割的案例,逐步深入卷积神经网络的核心,掌握深度学习的方法和精髓,领会 AlphaGo 战胜人类世界冠军的奥秘。 作者简介 李玉鑑(鉴) 北京工业大学授,博士生导师。华中理工大学(现名为华中科技大学)本科毕...
JS精度缺失问题
mengxiaodi的博客
09-18 1751
在处理一些极端情况下的复杂数值计算时,我们可能会遇到这样的情况——运算结果丢失精度。那么,为什么会出现这样的情况?该如何避免运算精度丢失呢?在JavaScript中,运算精度丢失的一个主要原因是浮点数的不精确性。JavaScript中的数字类型只有一种,即Number类型,采用64位浮点数表示法,能够表示的最大值为1.7976931348623157e+308,最小值为5e-324,但在进行小数的计算过程中,浮点数的二进制表示往往无法精确表示,就会产生精度丢失
解决JavaScript数字精度丢失问题的方法
01-19
本文分为三个部分 JS 数字精度丢失的一些典型问题 JS 数字精度丢失的原因 解决方案(一个对象+一个函数) 一、JS数字精度丢失的一些典型问题 1. 两个简单的浮点数相加 0.1 + 0.2 != 0.3 // true 这真不是 Firebug 的问题,可以用alert试试 (哈哈开玩笑)。 看看Java的运算结果 再看看Python 2. 大整数运算 16位和17位数竟然相等,没天理啊。 又如 var x = 9007199254740992 x + 1 == x // ? 看结果 三观又被颠覆了。 3. toFixed 不会四舍五入(Chrome) 线上曾经
JavaScript 数字精度丢失解决方案
qq_26087315的博客
03-18 5645
一、场景复现 0.1+0.2 === 0.3 //false 为什么是false呢? 先看下面这个比喻 比如一个数 1÷3=0.33333333… 这是一个除不尽的运算,3会一直无限循环,数学可以表示,但是计算机要存储,方便下次再使用,但0.333333… 这个数无限循环,再大的内存它也存不下,所以不能存储一个相对于数学来说的值,只能存储一个近似值,这么存储后再取出时自然就出现精度丢失问题。 二、浮点数 “浮点数”是一种表示数字的标准,整数也可以用浮点数的格式来存储 我们也可以理解成,浮点数就是小数 在J
js处理数字精度丢失问题
weixin_45491570的博客
01-12 900
大多数同学遇到的问题数字运算导致精度丢失。于是系统性的总结下面几种方法,希望能帮助到小伙伴。
解决js精度丢失问题
weixin_42602241的博客
01-05 1235
JavaScript中的数字类型是浮点类型,它存储的值并不能精确表示,所以在进行一些计算时会出现精度丢失的情况。 解决这个问题的方法有很多,下面列举一些常见的方法: 使用第三方库,例如: BigNumber.js:提供了超高精度数字处理能力,可以解决精度丢失问题。 decimal.js:提供了类似于 Python Decimal 的类型,可以精确表示浮点数,解决精度丢失问题。 使用整数...
js小数计算丢失精度问题解决方法
08-26 4017
1 小数计算bug: console.log( 1 - 0.8 ); //输出 0.19999999999999996 console.log( 6 * 0.7 ); //输出 4.199999999999999 console.log( 0.1 + 0.2 ); //输出 0.30000000000000004 consol...
js数字精度丢失问题详解(如何解决
常来常往,共同成长
02-17 2706
计算机存储双精度浮点数需要先把十进制数转换为二进制的科学记数法的形式,然后计算机以自己的规则{符号位+(指数位+指数偏移量的二进制)+小数部分}存储二进制的科学记数法
JS】关于精度丢失,产生的原因以及解决方案
Eliaukoyx
08-23 9624
前端开发中,精度丢失是一个常见的问题,特别是在涉及到浮点数计算时。
解决js丢失精度问题
Java小羽的博客
06-05 1386
大家好,我是小羽,最近做项目遇到了一个问题js存储long类型的数据时,最多可以保证16位数字精度,多出的位数就是丢失精度
灵感实验室中的问题解决:复杂挑战与创新源泉
"《理解灵感实验室中的问题解决一文深入探讨了在当今IT行业中,解决问题的关键角色及其与创新、创造力、知识、敏捷性和坚韧性的紧密联系。文章将焦点放在灵感实验室这个特殊的环境里,这种实验室不仅促进了学科间...
写文章

热门文章

  • 彻底搞懂 async await 的return问题 45022
  • 教你一文解决 js 数字精度丢失问题 21198
  • 一篇文章彻底搞懂layui框架中的弹窗(layer) 18840
  • vue引入图片报错?VueCli 关于静态资源(图片) 引入问题 16848
  • 彻底搞懂 Layui中的数据表格,更改请求参数等 12879

分类专栏

  • axios 3篇
  • 前端 52篇
  • 前端之旅 4篇
  • 打包 5篇
  • css3 4篇
  • html5 6篇
  • 组件库 9篇
  • react 11篇
  • vue 23篇
  • 笔记 4篇
  • 模块 4篇
  • vue组件传值 3篇
  • typescript 2篇
  • 路由 2篇
  • Linux自动部署 1篇
  • 小程序 8篇
  • 函数 2篇
  • 面试题
  • editor
  • element-ui 1篇
  • 封装axios 1篇
  • 前端支付 1篇
  • es6 2篇
  • 云开发 2篇
  • 实例方法 1篇
  • vue操作dom 1篇

最新评论

  • 如何在 npm 上发布一个 vue-cli 构建 Vue3+TypeScript 的项目?

    sp42a: 这不是 ts 工程,只是 js 的

  • vue引入图片报错?VueCli 关于静态资源(图片) 引入问题

    xyq011022: 呜呜呜呜大哥我真得给你磕一个

  • 实用技巧 一文解决 echarts 如何设置 legend 展示为虚线?

    大橙子-: 感谢分享!问题解决了

  • 彻底搞懂 async await 的return问题

    折花换酒桃花仙: 这个bug我也撞到了哈哈哈哈哈,但我还没解决掉,还在看源码。原因是js解释器解释到await就会记录下来,然后继续执行下面的函数。等await后面的语句执行完会自动执行回调函数,比如赋值。这时候return就能得到值,但我们俩都是await后第一时间就return了。按官方文档来说这时候的return应该已经是一个promise了,但我经常打印接收的值是undefined。没搞明白。再读读源码叭我。

  • vue引入图片报错?VueCli 关于静态资源(图片) 引入问题

    Record growth...: 给博主磕一个

最新文章

  • HTML5语义化标签 header 的详解
  • 深入解析HTML三位重要成员,探索html、head和body标签的奥秘
  • 前端HTML要了解的知识,DOCTYPE 声明究竟是做什么的、作用是什么?
2023年11篇
2022年20篇
2021年26篇
2020年36篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归来巨星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司优化网站排名首荐金手指东莞企业网站关键词优化费用推荐餐饮行业网站优化如何投放济宁关键词网站优化现在网站优化怎么做南京智能化网站优化联系人深圳收费网站优化计划好的网站关键词优化公司网站优化外链怎么做新网站优化鞍山公司网站优化罗湖好的网站优化优化前端网站性能优化网站推广优化刳 金牜手牜指六安优化网站排名东平网站优化定制陶瓷机械网站seo优化方法SEO网站优化工程师招聘张掖外贸网站优化推广香蜜湖网站优化有用吗陕西网站推广平台优化洛阳网站seo优化付费网站优化的主要方法热门网站优化加盟seo优化好的网站深圳有没有优化网站网站排名优化收费情况网站优化按天扣费首要选顺的推优化网站的方法白云速捷省钱贵溪网站优化平台歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化