JavaScript數字精度丟失問題總結

來源:互聯網
上載者:User

標籤:div   tin   target   問題總結   導致   asc   ima   rip   大整數   

  本文分為三個部分:

1、JS 數字精度丟失的一些典型問題

2、JS 數字精度丟失的原因

3、解決方案(一個對象+一個函數)

一、JS數字精度丟失的一些典型問題

1. 兩個簡單的浮點數相加

0.1 + 0.2 != 0.3 // true

  看看Java的運算結果

2. 大整數運算

9999999999999999 == 10000000000000001 // truevar x = 9007199254740992x + 1 == x // true

  16位和17位元竟然相等;加1竟然也相等。

3. toFixed 不會四捨五入(Chrome)

1.335.toFixed(2) // 1.33

  線上曾經發生過 Chrome 中價格和其它瀏覽器不一致,正是因為 toFixed 相容性問題導致。

二、JS 數字丟失精度的原因

  電腦的二進位實現和位元限制有些數無法有限表示。就像一些無理數不能有限表示,如 圓周率 3.1415926...,1.3333... 等。JS 遵循 IEEE 754 規範,採用雙精確度儲存(double precision),佔用 64 bit。

 

JavaScript數字精度丟失問題總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.