Home >Web Front-end >JS Tutorial >Precise calculation of js floating point numbers (addition, subtraction, multiplication, division)_javascript skills

Precise calculation of js floating point numbers (addition, subtraction, multiplication, division)_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:07:061293browse
Copy code The code is as follows:

/ /Note: The addition result of JavaScript will have errors, which will be more obvious when adding two floating point numbers. This function returns a more accurate addition result.
//Call: accAdd(arg1,arg2)
//Return value: the exact result of arg1 plus arg2
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
}


Copy code The code is as follows: >

//Explanation: The subtraction result of JavaScript will have errors, which will be more obvious when adding two floating point numbers. This function returns a more accurate subtraction result.
//Call: accSub(arg1,arg2)
//Return value: the exact result of arg1 minus arg2
function accSub(arg1,arg2){
return accAdd(arg1,-arg2) ;
}




//Explanation: The multiplication result of JavaScript will have errors, which will be more obvious when two floating point numbers are multiplied. This function returns a more accurate multiplication result.
//Call: accMul(arg1,arg2)
//Return value: the exact result of multiplying arg1 by arg2
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)
}




//Explanation: There will be an error in the division result of javascript, between the two It will be more obvious when dividing floating point numbers. This function returns a more accurate division result.
//Call: accDiv(arg1,arg2)
//Return value: the exact result of dividing arg1 by arg2
function accDiv(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(".",""))                                                                                                                                                                                                    /SPAN>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn