Javascript的數學難題

首先先考大家幾個數學題,如果這幾題的答案你都能順利的回答,那恭喜你!你可以安心地閱讀這篇文章,你一定能看懂!

題目ㄧ. 0.1 + 0.2 = ?
題目二. 1 – 0.9 = ?
題目三. 0.69 x 10 = ?

相信上面三個簡單的十進位數學運算,你的答案應該會跟我一樣吧?

第一題. 0.3
第二題. 0.1
第三題. 6.9

上面應該是無庸置疑的答案,但是如果我們把這三個題目丟給Javascript去運算之後,得到的結果會變成這樣:

第一題. 0.1 + 0.2 = 0.30000000000000004
第二題. 1 – 0.9 = 0.09999999999999998
第三題. 0.69 x 10 = 6.8999999999999995

什麼!?Javascript連這種小學生的算術都會算錯嗎?其實是有原因的,Javascript所有數字都是以64位浮點數形式儲存,也就是所有的數字都會變轉換成二進位。

上面題目中特別有提到這是3個十進位的數學運算,這也就是這個題目的重點,如果今天的題目改成:10 / 3 = 3.3333333333333334 也許你就能比較明白了,也就是說在十進位中要表達 1 / 3 和二進位中表達 1 / 10 一樣困難。

但其實在我們設計網頁的過程中,使用者是沒有二進位觀念的,只在乎運算出來的數值是否符合十進位的結果,這個時候我們可以利用一些技巧來達成正確的結果。

方法1 . 將小數變成整數後再進行運算


第一題. ((0.1 x 10) + (0.2 x 10)) / 10 = 0.3
第二題. ((1 x 10) – (0.9 x 10)) / 10 = 0.1
第三題. ((0.69 x 100) x 10 / 100) = 6.9

雖說以上的方法能夠順利完成任務,但若運算的數值是動態(Dynamic)的,乘數的部分就比較難下,所以我們可以採用第二種方法。

方法2. Math.js(https://mathjs.org/


透過網站上提供的js,或是透過CDN(https://cdnjs.com/libraries/mathjs)來引入後,透過以下的方法,就可以正確計算出上面三個題目的結果,其中14指的是精準度,通常已經很夠用了。

第一題. math.format(0.1 + 0.2 , 14) = 0.3
第一題. math.format(1 – 0.9 , 14) = 0.1
第一題. math.format(0.69 x 10 , 14) = 6.9

其實Math.js還有很多好用的功能,可以到它官方的網站閱讀一些文章,基本上所有的數學運算應該都可以透過它來玩完成。

You may also like...

101,082 Responses

  1. Diplomi_pqkl表示:

    купить диплом воспитателя о высшем образовании asxdiplomik24.ru .

  2. Dnrtldu表示:

    Привет, друзья!
    Заказать документ о получении высшего образования вы можете в нашем сервисе.
    diplomasx24.ru/kupit-diplom-moskva
    Хорошей учебы!

  3. CharlesDom表示:

    reputable canadian pharmacy canadian drugstore online canadian drug pharmacy

  4. Edwardwhava表示:

    https://canadapharmast.com/# canada pharmacy online

  5. Mazrdvf表示:

    Здравствуйте!
    Диплом пту купить официально с упрощенным обучением в Москве
    korrespondentweek.ru/kupit-diplomyi-s-polnoy-garantiey-kachestva/

  6. Edwardwhava表示:

    https://canadapharmast.com/# canadianpharmacymeds com

  7. CharlesDom表示:

    online canadian pharmacy canada drugs online reviews canadian pharmacy uk delivery

  8. DavidHiche表示:

    canada drugs reviews: canadian pharmacy 24h com safe – the canadian drugstore

  9. Diplomi_rePa表示:

    купить дипломы о высшем купить дипломы о высшем .

  10. MichaelKeT表示:

    canada drug pharmacy: canadian world pharmacy – canadian pharmacy ltd

  11. Uazrkoh表示:

    Привет!
    Где заказать диплом специалиста?
    satopttorg.ru/forum/user/3418/
    Успешной учебы!

  12. Uazrpfg表示:

    Привет!
    Купить диплом ВУЗа.
    3drus.ru/forum/topic_34870

  13. Manryii表示:

    Привет, друзья!
    Где приобрести диплом специалиста?
    Мы предлагаем документы ВУЗов, которые находятся в любом регионе России. Вы имеете возможность купить качественно напечатанный диплом за любой год, включая сюда документы старого образца. Дипломы выпускаются на “правильной” бумаге самого высокого качества. Это позволяет делать настоящие дипломы, которые невозможно отличить от оригинала. Они будут заверены необходимыми печатями и подписями.
    Мы изготавливаем дипломы любых профессий по приятным ценам.
    ast-diplomas.com/kupit-diplom-vracha
    Рады оказать помощь!

  14. Manrgjd表示:

    Привет, друзья!
    Где приобрести диплом специалиста?
    Мы готовы предложить документы институтов, расположенных на территории всей РФ. Вы имеете возможность приобрести качественный диплом за любой год, включая документы СССР. Дипломы выпускаются на “правильной” бумаге самого высокого качества. Это дает возможность делать настоящие дипломы, не отличимые от оригиналов. Документы будут заверены необходимыми печатями и штампами.
    Мы готовы предложить дипломы психологов, юристов, экономистов и прочих профессий по приятным тарифам.
    ast-diplomy24.ru/kupit-diplom-sankt-peterburg
    Окажем помощь!

  15. WilliamDeeli表示:

    Привет, друзья!
    Наши специалисты предлагают быстро и выгодно купить диплом, который выполнен на оригинальной бумаге и заверен печатями, водяными знаками, подписями. Диплом способен пройти лубую проверку, даже при использовании профессионального оборудования. Достигайте свои цели быстро и просто с нашими дипломами.
    boosty.to/zukunft2/posts/cc9b2ee9-289d-4320-94e0-1fde4e3749a4
    Успехов в учебе!

  16. WilliamDeeli表示:

    Здравствуйте!
    Мы предлагаем выгодно и быстро приобрести диплом, который выполнен на оригинальном бланке и заверен печатями, водяными знаками, подписями официальных лиц. Документ пройдет лубую проверку, даже с применением специальных приборов. Достигайте своих целей максимально быстро с нашей компанией.
    vrn.best-city.ru/forum/thread540115837/
    Удачи!

  17. Cazrist表示:

    Добрый день!
    Мы можем предложить документы техникумов, расположенных в любом регионе Российской Федерации. Вы имеете возможность заказать качественный диплом за любой год, включая документы старого образца. Документы печатаются на “правильной” бумаге самого высшего качества. Это дает возможности делать настоящие дипломы, не отличимые от оригиналов. Документы заверяются необходимыми печатями и штампами.
    http://www.clubalpintoulouse.fr/cb-profile/pluginclass/cbblogs?action=blogs&func=show&id=154

  18. Razroir表示:

    Привет, друзья!
    Наша компания предлагает заказать диплом высочайшего качества, который не отличить от оригинального документа без участия специалистов высокой квалификации со сложным оборудованием.
    rospisatel.ru/conference2/index.php?event=topic&fid=0&id=17188870972628
    Успешной учебы!

  19. Lazrwqf表示:

    Здравствуйте!
    Где приобрести диплом специалиста?
    Заказать диплом любого университета.
    gadjetforyou.ru/diplom-za-dengi-byistro-nadezhno-bezopasno

  20. Razrkpx表示:

    Добрый день!
    Мы предлагаем приобрести диплом высокого качества, который невозможно отличить от оригинального документа без участия специалиста высокой квалификации со сложным оборудованием.
    rytof.ru/node/16116
    Успехов в учебе!

  21. Eanrzir表示:

    Привет!
    Мы изготавливаем дипломы любой профессии по приятным ценам.
    diplom51.ru/gde-bezopasno-kupit-diplom-bez-riskov-i-problem-v-2024-godu/

  22. Dnrtamo表示:

    Привет, друзья!
    Купить документ о получении высшего образования вы имеете возможность в нашем сервисе.
    ast-diplomas24.ru/kupit-diplom-omsk
    Успешной учебы!

  23. Danrzwv表示:

    Добрый день!
    Где приобрести диплом специалиста?
    Мы предлагаем дипломы психологов, юристов, экономистов и любых других профессий по разумным ценам. Цена может зависеть от определенной специальности, года получения и образовательного учреждения. Стараемся поддерживать для заказчиков адекватную политику тарифов. Для нас важно, чтобы документы были доступны для большого количества наших граждан.
    Для вас изготавливаем дипломы любой профессии по доступным тарифам.
    http://www.privsocial.com/read-blog/270_vybiraem-proverennyj-magazin-s-attestatami-i-diplomami.html
    Рады оказать помощь!.

  24. Qazrgvg表示:

    Добрый день!
    Как приобрести диплом о среднем образовании в Москве и других городах.
    Купить диплом о высшем образовании.
    http://www.rugladyseminars.com/cb-profile/pluginclass/cbblogs?action=blogs&func=show&id=409

  25. Diplomi_wgEa表示:

    Добрый день!
    Купить документ ВУЗа можно у нас в Москве.
    ast-diplomy24.ru/kupit-diplom-omsk

  26. Qazrvwd表示:

    Привет!
    Как приобрести аттестат о среднем образовании в Москве и других городах.
    Приобрести диплом любого ВУЗа.
    jpq7var4t.collectblogs.com/73907644/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%BE-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B2-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5-russian-diplom

  27. Xazrzle表示:

    Привет, друзья!
    Готовы предложить документы техникумов, расположенных в любом регионе Российской Федерации. Можно купить качественный диплом за любой год, указав актуальную специальность и оценки за все дисциплины. Дипломы и аттестаты выпускаются на бумаге высшего качества. Это позволяет делать государственные дипломы, которые невозможно отличить от оригиналов. Они заверяются необходимыми печатями и штампами.
    Мы изготавливаем дипломы любой профессии по выгодным ценам. Стоимость может зависеть от выбранной специальности, года выпуска и образовательного учреждения. Стараемся поддерживать для покупателей адекватную ценовую политику. Для нас важно, чтобы документы были доступны для подавляющей массы граждан.
    landik-diploms-srednee.ru/attestat-shkoly В 
    Успешной учебы!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。