ホームページ >ウェブフロントエンド >jsチュートリアル >js浮動小数点数の正確な計算(加減乗除)_javascriptスキル

js浮動小数点数の正確な計算(加減乗除)_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:07:061293ブラウズ
コードをコピー コードは次のとおりです:

/ /注意: JavaScript の加算結果にはエラーが発生します。これは、2 つの浮動小数点数を加算するときにより顕著になります。この関数は、より正確な加算結果を返します。
//呼び出し: accAdd(arg1,arg2)
//戻り値: arg1 と 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
}



コードをコピー コードは次のとおりです: >
//説明: JavaScript の減算結果にはエラーが発生します。これは、2 つの浮動小数点数を加算するときにより顕著になります。この関数は、より正確な減算結果を返します。
//呼び出し: accSub(arg1,arg2)
//戻り値: arg1 から arg2 を引いた正確な結果
function accSub(arg1,arg2){
return accAdd(arg1,-arg2) ;
}




コードをコピーします。 >
//説明: JavaScript の乗算結果にはエラーが発生します。これは、2 つの浮動小数点数の場合により顕著になります。乗算されます。この関数は、より正確な乗算結果を返します。
//呼び出し: accMul(arg1,arg2)
//戻り値: arg1 と 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)
}




コードをコピー
コードは次のとおりです: //説明: JavaScript の除算結果、両者の間 浮動小数点数を除算する場合はより明白になります。この関数は、より正確な除算結果を返します。
//呼び出し: accDiv(arg1,arg2)
//戻り値: arg1 を 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>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。