JS的精确简单的加减乘除

Posted zhyphp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS的精确简单的加减乘除相关的知识,希望对你有一定的参考价值。

简单的写法:

<script>
function decNum(a)/*获取小数位数*/
    var r=0;
    a=a.toString();
    if(a.indexOf(".")!== -1) r=a.split(".")[1].length;
    return r;

function int(a)/*去除小数点并转成数值*/
    return parseInt(a.toString().replace(".",""));

function calc(a,b,type)//加减乘除
    var r,
        da=decNum(a),
        db=decNum(b),
        dsum=da+db,
        dmin=Math.min(da,db),
        dmax=Math.max(da,db);
    dsum+=dmax-dmin;
    dsum=Math.pow(10,dsum);
    dmax=Math.pow(10,dmax);
    a=int(a);
    b=int(b);
    if(da>db)
        b*=Math.pow(10,da-db);
    else
        a*=Math.pow(10,db-da);
    
    switch(type)
        case "add":
            r=(a+b)/dmax;
            break;
        case "subtract":
            r=(a-b)/dmax;
            break;
        case "multiply":
            r=(a*b)/dsum;
            break;
        case "divide":
            r=a/b;
            break;
    
    return r;

s=calc(0.1,0.2,"add");
console.log(s);
s=calc(-0.1,0.2,"add");
console.log(s);
s=calc(0.2,0.1,"subtract");
console.log(s);
s=calc(0.002,0.01,"multiply");
console.log(s);
s=calc(2.2,100,"divide");
console.log(s);
</script>

以上是关于JS的精确简单的加减乘除的主要内容,如果未能解决你的问题,请参考以下文章

js精确的加减乘除

JS实现精确加减乘除

Js BigDecimal实现精确加减乘除运算的方法

js精确加减乘除

js浮点数的加减乘除解决方案

解决JS浮点数(小数)计算加减乘除的BUG