码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 教你一文解决 js 数字精度丢失问题


    文章目录

      • 一、关于为什么要解决精度丢失
      • 二、怎么解决js的计算精度丢失问题?
      • 三、toPrecision 特定方法返回四舍五入长度字符串
      • 结语

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

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

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

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

    console.log(5.22 - 5.21);
    
    • 1

    在这里插入图片描述

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

    在这里插入图片描述

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

    三、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);
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    结语

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

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

  • 相关阅读:
    【python海洋专题二十八】南海四季海流流速图
    6.29模拟赛总结
    2024华数杯数学建模竞赛选题建议+初步分析
    地理计算 | 计算两个坐标点射线的交点(前方交会)
    JAVA传值和传引用的区别
    手把手教学:二阶魔方还原
    select函数介绍
    在对接自有账户体系时,FinClip 怎么做的?
    全志A40i android7.1 移植wifi驱动的一般流程
    RISCV学习(2)玄铁C910处理器体验
  • 原文地址:https://blog.csdn.net/clli_Chain/article/details/125993898
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号