亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript(js)的小數點乘法除法問題詳解

2019-11-20 20:58:55
字體:
來源:轉載
供稿:網友

一、用js計算
12.32 * 7  結果是多少?答案:86.24000000000001

為什么會出現這種問題?怎么解決?
js在處理小數的乘除法的時候有一個bug,解決的方法可以是:將小數變為整數來處理。
以上的計算可以改為:
12.32 * 100 * 7 /100
得出的結果是:86.24,正確。

另外再計算一下:
8.80 * 100 * 12 / 100
結果:105.60000000000002
38.80也會出現類似的問題。

精確度增加10倍:
8.80 * 1000 * 12 / 1000
結果:105.6
正常了。

16.40 * 1000000 * 6 / 1000000
結果也有問題

為了讓js執行的更準確,在以后的js小數計算中直接將值擴大10000倍,再除以10000,就可以解決問題。
var num = 38.80;
var num2 = 13;
alert(num * 10000 * 12 / 10000);

被乘和除的這個數經過測試10000最合適,小了有些數字出問題,大了(1000000)有些數字也出問題。

二、

復制代碼 代碼如下:

<script defer>
Number.prototype.rate=function(){
varoStr=this.toString();
if(oStr.indexOf(".")==-1)
return1;
else
returnMath.pow(10,parseInt(oStr.length-oStr.indexOf(".")-1));
}

functiontran(){
args=tran.arguments;
vartemp=1;
for(i=0;i<args.length;i++)
temp*=args[i]*args[i].rate();
for(i=0;i<args.length;i++)
temp/=args[i].rate();
returntemp
}
alert(tran(11,22.9));
</script>


該解決 辦法是比較麻煩的辦法,但是卻能讓你大概了解解決這個問題的實際過程。
復制代碼 代碼如下:

//除法函數,用來得到精確的除法結果
//說明: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(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}

//給Number類型增加一個div方法,調用起來更加 方便。
Number.prototype.div = function (arg){
return accDiv(this, arg);
}

//乘法函數,用來得到精確的乘法結果
//說明:javascript的乘法結果會有誤差,在兩個浮點數相乘的時候會比較明顯。這個函數返回較為精確的乘法結果。
//調用: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)
}

// 給Number類型增加一個mul方法,調用起來更加方便。
Number.prototype.mul = function (arg){
return accMul(arg, this);
}

//加法函數,用來得到精確的加法結果
//說明:javascript的加法結果會有誤差,在兩個浮點數相加的時候會比較明顯。這個函數返回較為精確的加法結果。
//調用: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
}

//給Number類型增加一個add方法,調用起來更加方便。
Number.prototype.add = function (arg){
return accAdd(arg,this);
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品久久久久久久99热| 国产在线98福利播放视频| 欧美午夜电影在线| 亚洲色图国产精品| 日韩最新中文字幕电影免费看| 国产精品青青在线观看爽香蕉| 国产精品9999| 欧美又大又硬又粗bbbbb| 精品露脸国产偷人在视频| 亚洲tv在线观看| 日韩免费av片在线观看| 欧美大片网站在线观看| 欧美性猛交xxxx富婆| 91久久久久久久一区二区| 日韩精品免费在线| 91夜夜未满十八勿入爽爽影院| 国内精品在线一区| 欧美丰满少妇xxxx| 欧美日韩另类视频| 92版电视剧仙鹤神针在线观看| 亚洲国产精品久久久久秋霞蜜臀| 欧美电影免费观看| 欧美日韩国产精品一区| 精品国产999| 日韩h在线观看| 亚洲国产黄色片| 欧美黄色片免费观看| 亚洲男人天堂2023| 黑人狂躁日本妞一区二区三区| 欧美激情国产高清| 国产精品电影在线观看| 国产激情久久久久| 国产精品爽爽爽爽爽爽在线观看| 亚洲图片制服诱惑| 亚洲成人激情在线| 九九九久久国产免费| 欧美最猛黑人xxxx黑人猛叫黄| 欧美性猛交xxxx偷拍洗澡| 国产精品久久久久久久久久| 亚洲欧洲视频在线| 亚洲国产精品久久91精品| 人妖精品videosex性欧美| 久热精品视频在线观看一区| 日韩网站免费观看高清| 精品视频在线导航| 日韩电影免费观看在线观看| 91欧美激情另类亚洲| 亚洲欧美另类人妖| 亚洲xxxx在线| 精品香蕉在线观看视频一| 啪一啪鲁一鲁2019在线视频| 欧美国产日韩一区二区| 亚洲理论片在线观看| 国产精品人成电影在线观看| 国产精品久久久999| 高清一区二区三区日本久| 久久综合久久八八| 国产有码在线一区二区视频| 欧美在线国产精品| 在线观看91久久久久久| 91香蕉嫩草影院入口| 久久色免费在线视频| 久久免费视频在线| 91产国在线观看动作片喷水| 日韩av电影中文字幕| 91九色国产在线| 91久久久久久久久久久久久| 亲爱的老师9免费观看全集电视剧| 亚洲欧美日韩精品久久奇米色影视| 亚洲成人激情在线观看| 欧美www视频在线观看| 中文字幕亚洲精品| 亚洲精品乱码久久久久久金桔影视| 狠狠躁夜夜躁久久躁别揉| 久久99久久亚洲国产| 国产亚洲欧洲高清| 久久99精品久久久久久青青91| 北条麻妃在线一区二区| 日韩暖暖在线视频| 日韩av网址在线观看| 欧美激情精品久久久久久蜜臀| 国产精品v日韩精品| 一区二区三区四区在线观看视频| 欧美成人免费在线视频| 欧美黑人xxxⅹ高潮交| 尤物九九久久国产精品的分类| 日韩一区二区在线视频| 精品久久久久久久久久久久久久| 亚洲第一福利在线观看| 欧美精品久久久久| 亚洲香蕉成视频在线观看| 亚洲欧美在线x视频| 欧日韩在线观看| 亚洲天堂2020| 九九热这里只有精品免费看| 成人在线播放av| 性色av一区二区三区红粉影视| 91久热免费在线视频| 亚洲a级在线播放观看| 色婷婷**av毛片一区| 成人免费淫片视频软件| 色小说视频一区| 久久99久久亚洲国产| 欧美大学生性色视频| 18一19gay欧美视频网站| 亚洲男人天堂2024| 日韩中文字幕在线观看| 国产在线观看不卡| 久久天天躁夜夜躁狠狠躁2022| 国产欧美日韩中文字幕| 精品中文字幕久久久久久| 国产精品福利小视频| 狠狠躁18三区二区一区| 夜夜嗨av一区二区三区四区| 久久久国产精品x99av| 午夜精品99久久免费| 中文字幕一精品亚洲无线一区| 欧美在线亚洲在线| 欧美性高潮床叫视频| 岛国av一区二区三区| 日韩成人av网| 91国产精品视频在线| 亚洲精品视频二区| 尤物yw午夜国产精品视频| 亚洲一区二区三区乱码aⅴ| 91av在线视频观看| 欧美日韩另类视频| 92看片淫黄大片欧美看国产片| 欧美激情xxxx性bbbb| 日本一区二区在线免费播放| 色老头一区二区三区在线观看| 久久国产精品视频| 欧美专区第一页| 色综合91久久精品中文字幕| 久久久久久com| 精品国产精品三级精品av网址| 91av视频在线免费观看| 日av在线播放中文不卡| 精品久久久免费| 在线成人中文字幕| 国产盗摄xxxx视频xxx69| 精品久久中文字幕久久av| 久久亚洲精品国产亚洲老地址| 国产精品444| 日韩网站在线观看| 欧美亚洲一区在线| 视频在线一区二区| 三级精品视频久久久久| 九九精品在线视频| 国产成人精品av| 91黑丝在线观看| 欧美天堂在线观看| 国产91精品久久久久| 欧美小视频在线观看| 久久6免费高清热精品| 欧美性猛xxx| 97国产精品视频人人做人人爱| 欧美精品情趣视频| 国产精品免费一区二区三区都可以| 国产精品91久久久久久| 国产乱人伦真实精品视频| 久久在精品线影院精品国产| 欧美性猛交xxxx偷拍洗澡| 亚洲视屏在线播放|