javascript 定時器內累加小數後變成16位的浮點數,這是啥意思?

來源:互聯網
上載者:User
javascript 定時器內累加小數後變成16位的浮點數,這是啥意思?
請看這:

var startNum = 1;    setInterval(function ()    {        startNum += 0.1;        console.log(startNum);    }, 500);

列印出來是這樣的:
1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.5000000000000004
1.6000000000000005

這難道是坑嗎?鬱悶。

回複內容:

javascript 定時器內累加小數後變成16位的浮點數,這是啥意思?
請看這:

var startNum = 1;    setInterval(function ()    {        startNum += 0.1;        console.log(startNum);    }, 500);

列印出來是這樣的:
1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.5000000000000004
1.6000000000000005

這難道是坑嗎?鬱悶。

很正常,這是由於精確度造成的問題,不信你試一下0.1+0.2不等於0.3。

http://segmentfault.com/q/1010000000137297

看這個標準 http://www.baidu.com/link?url=ax1PkOuwwFU_KTyr29jOuhSr9v-i-Zg8fqAqty9Xbo_2oLAYg-_2CIIPeo3HKbXV3ohudDm6DKjK4rvzhGwao2rsRd7MF6QsEwQO9ShILXc1nIK3oHeI90MDFEyXBmtcTmhycPcznpwUvWH_emJzZ7IMNbn99fBEs8G4iphb32e&wd=&eqid=9ac65804000049bc00000005568e60b4

要利用程式設計語言計算小數的話最好先轉換為整數計算

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.