js対加算計算、減算計算、乗算計算、除算計算の精度処理


jsを用いて加減乗除計算を行うたびに、jsは計算時にバイナリと10進数の間の変換を行い、変換過程に誤差が生じるため、最も古典的な例は以下の通りである.
0.1+0.2=0.30000000000000004

この問題を解決していない私はネットで多くの結果を検索して、以下は問題のない解決方法をみんなに分かち合います:
これは除算計算の処理です
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(".","")); 
    return (r1/r2)*pow(10,t2-t1);  
  }
}

これは乗算計算の処理です
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
)}

これは加算計算の処理です
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;
}

どのように使うことを知らない小さい仲間は伝言を残して討論することができます!あるいはこの関数は計算の問題のも伝言があって、私は直ちに訂正することができて、先端に興味のある小さい仲間に対して、グループを加えて一緒に討論することができます!q群:682783851
一緒にがんばって、一緒に進歩します