Javascript

JS 避免精度问题的数值计算

本文主要是介绍JS 避免精度问题的数值计算,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
    //浮点数加法运算   
    function FloatAdd(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   
    }   
    //浮点数减法运算   
    function FloatSub(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);   
    }
    //浮点数加法运算   
    function FloatAdd(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   
    }   
    //浮点数减法运算   
    function FloatSub(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);   
    }

 

这篇关于JS 避免精度问题的数值计算的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!