最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

js浮點(diǎn)數(shù)精準(zhǔn)計(jì)算

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:12:00
文檔

js浮點(diǎn)數(shù)精準(zhǔn)計(jì)算

js浮點(diǎn)數(shù)精準(zhǔn)計(jì)算://除法函數(shù),用來得到精確的除法結(jié)果//說明:javascript的除法結(jié)果會(huì)有誤差,在兩個(gè)浮點(diǎn)數(shù)相除的時(shí)候會(huì)比較明顯。這個(gè)函數(shù)返回較為精確的除法結(jié)果。//調(diào)用:accp(arg1,arg2)//返回值:arg1除以arg2的精確結(jié)果function accp(arg1,arg2){
推薦度:
導(dǎo)讀js浮點(diǎn)數(shù)精準(zhǔn)計(jì)算://除法函數(shù),用來得到精確的除法結(jié)果//說明:javascript的除法結(jié)果會(huì)有誤差,在兩個(gè)浮點(diǎn)數(shù)相除的時(shí)候會(huì)比較明顯。這個(gè)函數(shù)返回較為精確的除法結(jié)果。//調(diào)用:accp(arg1,arg2)//返回值:arg1除以arg2的精確結(jié)果function accp(arg1,arg2){

//除法函數(shù),用來得到精確的除法結(jié)果
//說明:javascript的除法結(jié)果會(huì)有誤差,在兩個(gè)浮點(diǎn)數(shù)相除的時(shí)候會(huì)比較明顯。這個(gè)函數(shù)返回較為精確的除法結(jié)果。
//調(diào)用:accp(arg1,arg2)
//返回值:arg1除以arg2的精確結(jié)果

function accp(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);
 }
}

//給Number類型增加一個(gè)p方法,調(diào)用起來更加方便。
Number.prototype.p = function (arg){
return accp(this, arg);
}
//乘法函數(shù),用來得到精確的乘法結(jié)果
//說明:javascript的乘法結(jié)果會(huì)有誤差,在兩個(gè)浮點(diǎn)數(shù)相乘的時(shí)候會(huì)比較明顯。這個(gè)函數(shù)返回較為精確的乘法結(jié)果。
//調(diào)用:accMul(arg1,arg2)
//返回值:arg1乘以arg2的精確結(jié)果

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);
}

//給Number類型增加一個(gè)mul方法,調(diào)用起來更加方便。

Number.prototype.mul = function (arg){
 return accMul(arg, this);
};

//加法函數(shù),用來得到精確的加法結(jié)果
//說明:javascript的加法結(jié)果會(huì)有誤差,在兩個(gè)浮點(diǎn)數(shù)相加的時(shí)候會(huì)比較明顯。這個(gè)函數(shù)返回較為精確的加法結(jié)果。
//調(diào)用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精確結(jié)果

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;
}
//給Number類型增加一個(gè)add方法,調(diào)用起來更加方便。
Number.prototype.add = function (arg){
 return accAdd(arg,this);
}
//減法函數(shù)
function accSub(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));
 //last modify by deeka
 //動(dòng)態(tài)控制精度長度
 n=(r1>=r2)?r1:r2;
 return ((arg2*m-arg1*m)/m).toFixed(n);
}
///給number類增加一個(gè)sub方法,調(diào)用起來更加方便
Number.prototype.sub = function (arg){
 return accSub(arg,this);
}

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

js浮點(diǎn)數(shù)精準(zhǔn)計(jì)算

js浮點(diǎn)數(shù)精準(zhǔn)計(jì)算://除法函數(shù),用來得到精確的除法結(jié)果//說明:javascript的除法結(jié)果會(huì)有誤差,在兩個(gè)浮點(diǎn)數(shù)相除的時(shí)候會(huì)比較明顯。這個(gè)函數(shù)返回較為精確的除法結(jié)果。//調(diào)用:accp(arg1,arg2)//返回值:arg1除以arg2的精確結(jié)果function accp(arg1,arg2){
推薦度:
標(biāo)簽: js 計(jì)算 精確
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top