位置:- 正文

教你一文解决 js 数字精度丢失问题(js遇到的问题)

编辑:rootadmin
教你一文解决 js 数字精度丢失问题 文章目录一、关于为什么要解决精度丢失二、怎么解决js的计算精度丢失问题?三、toPrecision 特定方法返回四舍五入长度字符串结语一、关于为什么要解决精度丢失

推荐整理分享教你一文解决 js 数字精度丢失问题(js遇到的问题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js 0.1+0.2解决方案,javascript解决了什么问题,js 0.1+0.2解决方案,怎么破解js加密,js小技巧,如何解密js,javascript解决了什么问题,js 0.1+0.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 特定方法返回四舍五入长度字符串教你一文解决 js 数字精度丢失问题(js遇到的问题)

当然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);

结语

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

铁铁们 感谢支持 我需要你们的三连 👍👍👍

本文链接地址:https://www.jiuchutong.com/zhishi/300157.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/zhishi/300158.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络