• <tt id="4ayss"><strong id="4ayss"></strong></tt>
  • <xmp id="4ayss"><menu id="4ayss"></menu><nav id="4ayss"><strong id="4ayss"></strong></nav>
    <nav id="4ayss"><strong id="4ayss"></strong></nav>
  • <nav id="4ayss"></nav>

    卓象程序員 | 哈爾濱IT培訓 | 品質教育,口碑傳承 | 為做出口口相傳,好口碑的教育品牌而奮斗!

    卓象程序員讓每一位學員高薪就業 聯系我們13101507057

    加微信,了解詳情
    您所在的位置:首頁 > 文章 >卓象技術

    「卓象程序員」0.1 + 0.2在什么情況下不等于0.3?
    時間: 2019-10-10 16:57:52     來源: 卓象IT實訓基地【原創】

    這是一個很有意思的問題。曾經有一個笑話說1+1在什么情況下不等于2,那么如今有0.1+0.2到底等不等于0.3的問題。這個問題如果在正常的數學邏輯思維里,小朋友都知道答案是確實等于0.3.但是在Javascript里,0.1 + 0.2 != 0.3.那么這到底是什么原因呢?很多公司在面試前端程序員的時候也非常喜歡問這個問題。那么我們就來一起探究下原因吧。


    其實,問題在于Javascript中的二進制浮點數0.1+0.2是約數,并不精準。它們相加的結果是一個比較接近0.3的數,0.30000000000000004,程序是十分嚴謹的,所以判斷結果為false。


    Javascript的數學運算都是基于 IEEE754 標準的浮點數運算,比如2+0.1也是浮點數2+浮點數0.1。所以原因在于浮點0.1取一舍零造成的誤差。


    那么問題出現了,我們應該如何去解決呢?我們可以設置一個誤差范圍,在Javascript中這個值是2^~52,在ES6中我們可以使用屬性:Number.EPSILON,這個值就等于2^~52。所以我們只需要滿足(0.1+0.2)-0.3小于Number.EPSILON這個條件,那么0.1 + 0.2 === 0.3 就為true了。


    但是還不夠嚴謹,我們還應該考慮兼容性的問題,那么在Chrome中是支持這個屬性的,但是在IE中并不支持。


    最后我們也不用擔心數字無法完全精確,只是在處理小數時應該特別引起注意。絕大多數程序只需要處理整數就可以了,所以使用Javascript是完全沒問題的。

    每日分享技術干貨~

    報名卓象免費訓練營課程

    學習最新熱門IT技術

    找一份自己滿意的高薪工作

    15天免費學習??!

    卓象程序員

    ★ 零基礎,隨時體驗

    ★ 免費試聽,滿意后再報名

    ★ 小班授課,學習氛圍濃厚

    ★ 口碑相傳,80%學員來自口碑推薦

    ★ 教學嚴管,闖關式學習保障學習效果

    ★ 公司地點,哈爾濱市東直路123號7樓



    热99re久久精品|天天综合网久久综合免费人成|91久久久久久久精品青草| 亚洲AV无码无一区二区Ⅰ久久|
  • <tt id="4ayss"><strong id="4ayss"></strong></tt>
  • <xmp id="4ayss"><menu id="4ayss"></menu><nav id="4ayss"><strong id="4ayss"></strong></nav>
    <nav id="4ayss"><strong id="4ayss"></strong></nav>
  • <nav id="4ayss"></nav>