JS中的加减乘除法

作者: 我是七月 | 来源:发表于2018-11-14 18:09 被阅读9次
js的算法莫名其妙就会计算不准,下面是计算加减乘除的万能公式:
/**
 * 加法
 * @param arg1
 * @param arg2
 * @returns
 */
function accAdd(arg1,arg2){
     var r1,r2,m;
     try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0};
     try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0};
     m=Math.pow(10,Math.max(r1,r2));
     return (arg1*m+arg2*m)/m;
}
 
/**
 * 减法
 * @param arg1
 * @param arg2
 * @returns
 */
 function accSubtr(arg1,arg2){
    var r1,r2,m,n;
    try{r1=arg1.toString().split(".")[1].length;}catch(e){r1=0;}
    try{r2=arg2.toString().split(".")[1].length;}catch(e){r2=0;}
    m=Math.pow(10,Math.max(r1,r2));
    //动态控制精度长度
    n=(r1>=r2)?r1:r2;
    return ((arg1*m-arg2*m)/m).toFixed(n);
} 
 
/***
 * 乘法,获取精确乘法的结果值
 * @param arg1
 * @param arg2
 * @returns
 */
function accMul(arg1,arg2)
{
  var m=0,s1=arg1.toString(),s2=arg2.toString();
  try{m+=s1.split(".")[1].length}catch(e){};
  try{m+=s2.split(".")[1].length}catch(e){};
  return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
}
 
/***
 * 除法,获取精确乘法的结果值
 * @param arg1
 * @param arg2
 * @returns
 */
function accDivCoupon(arg1,arg2){
    var t1=0,t2=0,r1,r2;
    try{t1=arg1.toString().split(".")[1].length;}catch(e){}
    try{t2=arg2.toString().split(".")[1].length;}catch(e){}
    with(Math){
        r1=Number(arg1.toString().replace(".",""));
        r2=Number(arg2.toString().replace(".",""));
        return (r1/r2)*pow(10,t2-t1);
    }
}


相关文章

  • JS中的加减乘除法

    js的算法莫名其妙就会计算不准,下面是计算加减乘除的万能公式:

  • JS中Float类型加减乘除

    //浮点数加法运算 functionFloatAdd(arg1,arg2){ var r1,r2,m; try{r...

  • js 浮点数运算处理

    js中在执行加减乘除运算时候会造成如下问题 下面通过特殊处理解决这一问题 测试

  • Javascript-理解对象

    前面我们知道创建对象的两种方式:1、构造函数法 2、对象字面量法 理解JS中的特性(attribute) js中的...

  • JS数值

    数值 100 整型 3.14 浮点型 3.14e7 科学计数法 0xfa1b 16进制 在数值中除了加减乘除求余外...

  • 提升JS质量—1. JS的Numbers

    写在前面 JS中涉及到的对数值的操作:算数运算(加减乘除)+逻辑运算(比较)+转换类型常见的坑有 纯数值运算:值域...

  • JS浮点数计算精度

    JS的浮点数,计算都是会有问题的。下面给出加减乘除的解决办法 131.20*100 = 13119.999999 ...

  • JS 加减乘除运算

    做的过程中发现加法还是不精确,精确算法为啥不精确,因为里面的乘法不是精确乘法,所以修改了一下,加法没有问题了,其他...

  • 点击复制

    法一:复制内容写在input里 html: js: 法二:复制内容写在是span里 html: js: 法三:兼容...

  • 社长的加减乘除 (创业法)

    贾光:深圳杭州分社社长 信息#认知 事实#联系 什么是有效的学习? 思维模型+刻意练习 加:勇于试错,善于创新(...

网友评论

    本文标题:JS中的加减乘除法

    本文链接:https://www.haomeiwen.com/subject/rwojfqtx.html