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

首頁 > 編程 > JavaScript > 正文

Javascript 浮點運算的問題分析與解決方法

2019-11-20 22:21:45
字體:
來源:轉載
供稿:網友

十進制           二進制
0.1              0.0001 1001 1001 1001 ...
0.2              0.0011 0011 0011 0011 ...
0.3              0.0100 1100 1100 1100 ...
0.4              0.0110 0110 0110 0110 ...
0.5              0.1
0.6              0.1001 1001 1001 1001 ...
所以比如 1.1 ,其程序實際上無法真正的表示 ‘1.1',而只能做到一定程度上的準確,這是無法避免的精度丟失:

1.09999999999999999
在JavaScript中問題還要復雜些,這里只給一些在Chrome中測試數據:

 輸入               輸出
1.0-0.9 == 0.1     False
1.0-0.8 == 0.2     False
1.0-0.7 == 0.3     False
1.0-0.6 == 0.4     True
1.0-0.5 == 0.5     True
1.0-0.4 == 0.6     True
1.0-0.3 == 0.7     True
1.0-0.2 == 0.8     True
1.0-0.1 == 0.9     True
解決
那如何來避免這類 1.0-0.9 != 0.1 的非bug型問題發生呢?下面給出一種目前用的比較多的解決方案, 在判斷浮點運算結果前對計算結果進行精度縮小,因為在精度縮小的過程總會自動四舍五入:

復制代碼 代碼如下:

(1.0-0.9).toFixed(digits)                   // toFixed() 精度參數須在 0 與20 之間
parseFloat((1.0-0.9).toFixed(10)) === 0.1   // 結果為True
parseFloat((1.0-0.8).toFixed(10)) === 0.2   // 結果為True
parseFloat((1.0-0.7).toFixed(10)) === 0.3   // 結果為True
parseFloat((11.0-11.8).toFixed(10)) === -0.8   // 結果為True

方法提煉
復制代碼 代碼如下:

// 通過isEqual工具方法判斷數值是否相等
function isEqual(number1, number2, digits){
 digits = digits == undefined? 10: digits; // 默認精度為10
 return number1.toFixed(digits) === number2.toFixed(digits);
}

isEqual(1.0-0.7, 0.3);  // return true

// 原生擴展方式,更喜歡面向對象的風格
Number.prototype.isEqual = function(number, digits){
 digits = digits == undefined? 10: digits; // 默認精度為10
 return this.toFixed(digits) === number.toFixed(digits);
}

(1.0-0.7).isEqual(0.3); // return true

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女国内精品自产拍在线播放| 欧美精品激情在线观看| 亚洲午夜久久久久久久| 欧美日韩国产色视频| 精品一区二区三区四区| 亚洲欧美日本精品| 欧美激情精品久久久久久免费印度| 懂色av中文一区二区三区天美| 日韩欧美综合在线视频| 亚洲福利视频专区| 日韩中文字幕视频在线观看| 欧美激情亚洲激情| 欧美日韩高清在线观看| 欧美在线视频一区| 欧美激情精品久久久久久免费印度| 久久国产精品首页| 51视频国产精品一区二区| 欧美夫妻性生活xx| 欧美成人网在线| 亚洲 日韩 国产第一| 欧美在线观看网站| 国产做受69高潮| 91国产中文字幕| 97在线视频免费| 日韩在线观看免费全集电视剧网站| 亚洲欧美视频在线| 国产不卡视频在线| 日韩久久精品电影| 日韩一区二区三区在线播放| 久久人91精品久久久久久不卡| 日韩免费在线观看视频| 国产在线拍偷自揄拍精品| 亚洲视频在线观看视频| 亚洲国产黄色片| 7m第一福利500精品视频| 疯狂做受xxxx高潮欧美日本| 亚洲偷熟乱区亚洲香蕉av| 日韩在线视频观看正片免费网站| 精品久久久久久亚洲国产300| 中文国产成人精品久久一| 九九久久久久99精品| www.色综合| 亚洲人成在线播放| 992tv成人免费影院| 91a在线视频| 精品动漫一区二区三区| 国产91精品高潮白浆喷水| 日韩av在线网址| 精品国产一区二区三区久久| zzijzzij亚洲日本成熟少妇| 久久久国产精彩视频美女艺术照福利| 欧美巨乳美女视频| 欧美另类精品xxxx孕妇| 久久999免费视频| 欧美国产极速在线| 九九精品在线观看| 日本久久精品视频| 日韩有码在线电影| 亚洲精品国产精品国自产在线| 成人中文字幕+乱码+中文字幕| 日韩在线视频中文字幕| 久久中文字幕视频| 国产999精品久久久| 亚洲欧美精品一区| 久久av.com| 亚洲三级免费看| 久久久久一本一区二区青青蜜月| 久久久久久久久中文字幕| 揄拍成人国产精品视频| 亚洲a在线观看| 欧美最猛性xxxxx亚洲精品| 国产精品久久久久久久久粉嫩av| 国产男人精品视频| 久久影院资源网| 亚洲国产精品久久精品怡红院| 久久99久久99精品中文字幕| 亚洲精品日韩在线| 日本一区二区三区在线播放| 国产精品成人va在线观看| 国产精品午夜一区二区欲梦| 亚洲第五色综合网| 国产精品视频地址| 国产精品99久久久久久www| 亚洲人成在线观看| 欧美理论电影在线观看| 久久福利视频网| 亚洲成人免费网站| 欧美大尺度电影在线观看| 中国日韩欧美久久久久久久久| 日韩在线不卡视频| 欧美剧在线观看| 亚洲成人网久久久| 精品国产31久久久久久| 亚洲精品自拍第一页| 国产z一区二区三区| 日韩成人在线电影网| 欧美日韩亚洲精品一区二区三区| 欧美成人黄色小视频| 亚洲天堂网站在线观看视频| 亚洲国产精品悠悠久久琪琪| 久久久精品2019中文字幕神马| 久久久久久久久爱| 国产精品永久免费视频| 亚洲精品欧美日韩专区| 亚洲欧洲xxxx| 红桃av永久久久| 国产亚洲福利一区| 中文国产成人精品| 国产日韩欧美视频| 日韩av手机在线观看| 亚洲国产精品va在线观看黑人| 777精品视频| www.久久色.com| 日韩av中文字幕在线免费观看| 精品国产福利在线| 日韩免费黄色av| 这里只有精品在线观看| 日韩av片免费在线观看| 国产精品香蕉在线观看| 亚洲欧洲日韩国产| 亚洲日韩欧美视频| 欧美最猛性xxxxx亚洲精品| 色综合老司机第九色激情| 亚洲男人天堂2019| 浅井舞香一区二区| 日本一欧美一欧美一亚洲视频| 国模极品一区二区三区| 精品久久久久久亚洲精品| 成人综合网网址| 日韩在线视频一区| 国产日产久久高清欧美一区| 亚洲精品女av网站| 欧美精品www| 亚洲国产又黄又爽女人高潮的| 亚洲va久久久噜噜噜久久天堂| 亚洲欧美日韩国产中文专区| 亚洲a一级视频| 国产精品v日韩精品| 欧美黑人巨大xxx极品| 欧美激情在线狂野欧美精品| 欧美肥臀大乳一区二区免费视频| 色偷偷av一区二区三区| 麻豆国产精品va在线观看不卡| 性色av一区二区三区在线观看| 久久久之久亚州精品露出| 精品亚洲精品福利线在观看| 亚洲人成在线免费观看| 久久亚洲精品一区| 51色欧美片视频在线观看| 亚洲电影av在线| 91精品国产乱码久久久久久久久| 日韩av色综合| 国产一区二区精品丝袜| 亚洲视频在线观看免费| 日韩av免费在线| 久热精品视频在线观看| 欧美性猛交xxxx| 欧美成人久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲欧美精品伊人久久| 91亚洲人电影| 成人欧美一区二区三区在线| 亚洲伊人一本大道中文字幕| 国产精品青青在线观看爽香蕉|