例: 0.1+0.1+0.1+0.7 != 1

   0.1+0.2 != 0.3

解决办法:

  相加

  function addNum(num1, num2) {
          let sq1, sq2;
          try {
              sq1 = num1.toString().split(".")[1].length;
          } catch (e) {
              sq1 = 0;
          }
          try {
              sq2 = num2.toString().split(".")[1].length;
          } catch (e) {
              sq2 = 0;
          }
          const m = Math.pow(10, Math.max(sq1, sq2));
          return (num1 * m + num2 * m) / m;
    }
  相除
  1. function accDiv(arg1,arg2){
  2.   var t1=0,t2=0,r1,r2;
  3.   try{
  4.     t1=arg1.toString().split(".")[1].length;
      }catch(e){}

      try{
  5.   t2=arg2.toString().split(".")[1].length;
      }catch(e){}

  6.   with(Math){
        r1=Number(arg1.toString().replace(".",""));
  7.   r2=Number(arg2.toString().replace(".",""));
  8.     return (r1/r2)*pow(10,t2-t1);
      }
    }

    相乘
  1. function accMul(arg1,arg2){
  2.   var m=0,s1=arg1.toString(),
  3.   s2=arg2.toString();
  4.   try{
  5.     m+=s1.split(".")[1].length}catch(e){}
  6.   try{
  7.     m+=s2.split(".")[1].length}catch(e){}
  8.   return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)}
  9. )}

js小数相加精度不准确的更多相关文章

  1. java用double和float进行小数计算精度不准确

    java用double和float进行小数计算精度不准确 大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中或者已知的小数计算得到的结果会不准确,这种问题是非 ...

  2. 关于js浮点数计算精度不准确问题的解决办法

    今天在计算商品价格的时候再次遇到js浮点数计算出现误差的问题,以前就一直碰到这个问题,都是简单的使用tofixed方法进行处理一下,这对于一个程序员来说是及其不严谨的.因此在网上收集了一些处理浮点数精 ...

  3. js 浮点数计算精度不准确问题

    或许很多人都遇到过,js 对小数的加.减.乘.除时经常得到一些奇怪的结果! 比如 :0.1 + 0.2 = 0.3  ? 这么一个简单的计算,当你用js 计算时会发现结果是:0.30000000000 ...

  4. js 小数相加

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...

  5. js 小数相加异常

    var a = 0.1; var b = 0.2; a + b//0.30000000000000004 这个bug可能是因为二进制计算溢出导致的. 解决办法:将小数转换为整数进行计算 计算后结果除以 ...

  6. js浮点数加减乘除精度不准确

    做个记录,以备不时之需 //加法 Number.prototype.add = function(arg){ var r1,r2,m; try{r1=this.toString().split(&qu ...

  7. 搞懂js中小数运算精度问题原因及解决办法

    js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言中的double类型(双精度浮点型),不区分浮点型和整数型. number类 ...

  8. js小数计算引起的精度误差问题

    我记得刚开始学js的时候学到浮点有举例0.1+0.2 它的计算结果是: 0.1+0.20.30000000000000004 很神奇的一个计算,js是弱语言,在精度上没做处理: 我就自己定义了加减乘除 ...

  9. JS 数字相加出现多个小数的问题

    今天在页面上用到了js进行小数相加119.01+0.01,结果大家都知道应该是:119.02的,然而结果是119..0200000…. ,莫名其妙的,还以为是我写的程序有问题,后来查了下才知道这是ja ...

  10. js 小数转整数,避免精度损失 bug

    js 小数转整数,避免精度损失 bug const arr = [ 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01 ]; // ( ...

随机推荐

  1. 重磅!Cloud Ace 首度于德国设立法人,作为拓展Google Cloud 欧洲整合市场的基础

    [Cloud Ace - 谷歌云 | 亚太地区最多据点的Google Cloud经销商 ]   Cloud Ace, Inc.(总部:东京都千代田区,代表:青木诚,以下简称 Cloud Ace)在20 ...

  2. params的使用

    今天在写vue的JavaScript的时候有个地方需要传很多参数,自己写不出来,求助 我的博博 后拿到神奇代码: 神奇代码中有params,俺自作聪明,以为他是一个json的数据,所以自己改了个名字 ...

  3. linuxz中压缩解压缩文件

    压缩解压缩.tar格式文件: 把文件打包为tar.gz命令: tar -zcvf 文件名.tar.gz 要压缩的文件/文件夹                                      ...

  4. nginx,git,maven面试题

    1.简述一下什么是Nginx,它有什么优势和功能? Nginx是一个web服务器和方向代理服务器,用于HTTP.HTTPS.SMTP.POP3和IMAP协议.因 它的稳定性.丰富的功能集.示例配置文件 ...

  5. Windows初始化.net core环境

    1.项目使用.ner core版本(例:.net core.3.1) 1.1安装运行环境 https://dotnet.microsoft.com/en-us/download 1.2安装.net 运 ...

  6. 吴恩达老师机器学习课程chapter11——大规模机器学习

    吴恩达老师机器学习课程chapter11--大规模机器学习 本文是非计算机专业新手的自学笔记,高手勿喷. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十七章. 这是这次整理 ...

  7. 吴恩达老师机器学习课程chapter02——分类

    吴恩达老师机器学习课程chapter02--分类 本文是非计算机专业新手的自学笔记,高手勿喷,欢迎指正与其他任何合理交流. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第六章 ...

  8. 我和Java这些年的故事(五)

    时光荏苒,我来到了IBM.和慕名已久的WebSphere Application Server(WAS)打起了交道. 之前我搞过Weblogic,对应用服务器的特性有了一定的了解.但WAS无疑更为庞大 ...

  9. pypi镜像-清华

    临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 注意,simple 不能少, 是 https 而不是 ...

  10. 关于HTML5语义化

    根据 HTML5 规范,在没有其他合适标签更合适时,才应该把 <b> 标签作为最后的选项. HTML5 规范声明:应该使用 <h1> - <h6> 来表示标题,使用 ...