国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js解決0.1+0.2==0.3的問題的幾種方法

3fuyu / 3438人閱讀

摘要:解決兼容性問題上面是一個自調用函數,當文件剛加載到內存中,就會去判斷并返回一個結果,相比這種代碼更節約性能,也更美觀。接下來再判斷這里就為了把計算數字提升的次方倍再除以的次方。

js解決0.1+0.2==0.3的問題的幾種方法

JavaScript有7種基本類型分別是: Undefined, Null, Boolean, String, Number, Symbol, Object.

對于JS中的Number類型, 不區分整數和浮點數, 浮點數的精度遠遠不如整數, 首先先看一下為什么會出現這個問題, 根據雙精度浮點數的定義, Number類型的有效整數范圍是-0XFFFFFFFFFFF至0X1FFFFFFFFFF,所以無法精確到超過這個范圍的整數.

解決辦法
1.ES6提供的Number.EPSILON方法

function numbersequal(a,b){ return Math.abs(a-b)

考慮兼容性的問題了,在chrome中支持這個屬性,但是IE并不支持(筆者的版本是IE10不兼容),所以我們還要解決IE的不兼容問題。

Number.EPSILON=(function(){   //解決兼容性問題
        return Number.EPSILON?Number.EPSILON:Math.pow(2,-52);
      })();
//上面是一個自調用函數,當JS文件剛加載到內存中,就會去判斷并返回一個結果,相比if(!Number.EPSILON){
  //   Number.EPSILON=Math.pow(2,-52);
  //}這種代碼更節約性能,也更美觀。
function numbersequal(a,b){ 
    return Math.abs(a-b)

2.把計算數字 提升 10 的N次方 倍 再 除以 10的N次方。N>1.

(0.1*1000+0.2*1000)/1000==0.3
//true

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101932.html

相關文章

  • 如何解決0.1 +0.2===0.30000000000000004類問題

    摘要:方法使用定點表示法來格式化一個數,會對結果進行四舍五入。該數值在必要時進行四舍五入,另外在必要時會用來填充小數部分,以便小數部分有指定的位數。如果數值大于,該方法會簡單調用并返回一個指數記數法格式的字符串。在環境中,只能是之間,測試版本為。 showImg(https://segmentfault.com/img/remote/1460000011913134?w=768&h=521)...

    yuanzhanghu 評論0 收藏0
  • JS中如何理解浮點數?

    摘要:本文通過介紹的二進制存儲標準來理解浮點數運算精度問題,和理解對象的等屬性值是如何取值的,最后介紹了一些常用的浮點數精度運算解決方案。浮點數精度運算解決方案關于浮點數運算精度丟失的問題,不同場景可以有不同的解決方案。 本文由云+社區發表 相信大家在平常的 JavaScript 開發中,都有遇到過浮點數運算精度誤差的問題,比如 console.log(0.1+0.2===0.3)// fa...

    bang590 評論0 收藏0
  • 從一個 bug 看 javascript 精度丟失問題

    摘要:就像一些無理數不能有限表示,如圓周率,等。遵循規范,采用雙精度存儲,占用。參考中不會失去精度的最大值數字精度丟失的一些典型問題 問題描述 后端返回 { spaceObject: { objectId: 1049564069045993472 } } 前端模版,使用的是 atpl 模版 前端獲取 objectId 的方式,const objectId = $(#test).da...

    NusterCache 評論0 收藏0
  • javascript中0.1 + 0.2 != 0.3?

    摘要:按照的數字格式,整數有的范圍是,而且只能表示有限個浮點數,能表示的個數為個。 0.1+0.2 等于0.3嗎?相信拿著這條題目隨便問一個高年級的小學生,他們都會毫不猶豫都回答:相等。是的,相等是正常的,這是常識。但是都說實踐是檢驗真理的唯一標準,拿這道簡單的算術題用javascript在chrome控制臺試驗一下: 結果令人大跌眼鏡,在控制臺輸入0.1+0.2 == 0.3返回的結果竟然...

    ivydom 評論0 收藏0

發表評論

0條評論

3fuyu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<