zoukankan      html  css  js  c++  java
  • javascript浮点数运算精度问题

    在jacascript中直接对两个浮点数相加得到的结果不精确。
    通过如下方法可以解决。

    function accAdd(arg1, arg2) {
    		var r1, r2, m, c;
    		try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0  }
    		try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0  }
    		c = Math.abs(r1 - r2);
    		m = Math.pow(10, Math.max(r1,  r2))
    		if (c > 0) {
    			var cm = Math.pow(10,  c);
    			if (r1 > r2) {
    				arg1 =  Number(arg1.toString().replace(".", ""));
    				arg2 =  Number(arg2.toString().replace(".", "")) * cm;
    			}else {
    				arg1 = Number(arg1.toString().replace(".", "")) *  cm;
    				arg2 = Number(arg2.toString().replace(".",  ""));
    			}
    		}else {
    			arg1 =  Number(arg1.toString().replace(".", ""));
    			arg2 =  Number(arg2.toString().replace(".", ""));
    		}
    		return (arg1 +  arg2) / m
    	}


     

  • 相关阅读:
    字符串匹配之BF算法
    python里的反射(自学习)
    python的super()以及父类继承
    @staticmethod
    @classmethod
    scrapy
    mongodb
    js注入提取伪元素选择器
    execjs
    base64解密
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131465.html
Copyright © 2011-2022 走看看