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...

124,531 Responses

  1. Cazrmcw表示:

    Приобрести диплом ВУЗа!
    Мы предлагаем документы ВУЗов, которые расположены на территории всей Российской Федерации. Дипломы и аттестаты выпускаются на бумаге самого высшего качества: triton-prog.ru/panel/articles/?kupit_diplom_tehnikuma_bustro_i_bezopasno.html

  2. Sazrlqr表示:

    Приобрести документ о получении высшего образования вы имеете возможность в нашей компании. Мы предлагаем документы об окончании любых ВУЗов России. Вы сможете получить диплом по любой специальности, любого года выпуска, в том числе документы старого образца. Даем гарантию, что при проверке документа работодателями, подозрений не появится. medicineshocknews.ru/diplom-gosudarstvennogo-obraztsa-bez-problem

  3. Sazrpcn表示:

    Заказать документ института можно в нашем сервисе. Мы оказываем услуги по продаже документов об окончании любых ВУЗов РФ. Вы сможете получить диплом по любым специальностям, включая документы образца СССР. Гарантируем, что в случае проверки документов работодателями, каких-либо подозрений не возникнет. sobakovodkursk.listbb.ru/posting.php?mode=post&f=17&sid=3e9f19e8d86312073f27ad9aa98677f4

  4. Malcolmseern表示:

    apotek online recept apotek online Apotek hemleverans recept

  5. Diplomi_xySa表示:

    купить диплом в энгельсе diplomys-vsem.ru .

  6. Lazrxpc表示:

    Заказать диплом любого института!
    Мы изготавливаем дипломы психологов, юристов, экономистов и любых других профессий по невысоким ценам— diplom-kaluga.ru/kupit-diplom-s-vneseniem-v-reestr-bistro-i-nadezhno-2/

  7. WilliamDeeli表示:

    Мы изготавливаем дипломы любой профессии по выгодным ценам. Дипломы изготавливаются на оригинальных бланках государственного образца Приобрести диплом о высшем образовании diplomc-v-ufe.ru

  8. WilliamDeeli表示:

    Мы изготавливаем дипломы любой профессии по выгодным тарифам. Дипломы изготавливаются на оригинальных бланках государственного образца Купить диплом любого института diplom-ryssia.com

  9. Lazrivx表示:

    Где заказать диплом по необходимой специальности?
    Заказать диплом ВУЗа по невысокой стоимости можно, обратившись к проверенной специализированной фирме.: okdiplom.com

  10. Lazrhgb表示:

    Где заказать диплом специалиста?
    Заказать диплом института по выгодной стоимости возможно, обращаясь к надежной специализированной фирме.: kdiplom.ru

  11. Derekgroum表示:

    Kamagra kaufen ohne Rezept: Kamagra online bestellen – Kamagra Original

  12. Trefusm表示:

    Приобрести документ о получении высшего образования можно у нас. diplom-zentr.com/kupit-diplom-volgograd-4

  13. Trefapd表示:

    Купить документ университета можно в нашей компании в Москве. diplomservis.com/kupit-diplom-omsk-4-3

  14. Iariorbsz表示:

    Приобрести документ института можно у нас в столице. caseyandkelly.com/?p=2764&cpage=1#comment-45766

  15. Jariortxp表示:

    Где заказать диплом специалиста?
    Мы предлагаем быстро приобрести диплом, который выполняется на оригинальном бланке и заверен мокрыми печатями, водяными знаками, подписями должностных лиц. Данный диплом способен пройти лубую проверку, даже при помощи специальных приборов. Достигайте свои цели быстро с нашим сервисом. Купить диплом любого университета! notebooks.ru/forum/user/140974

  16. Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
    Мы предлагаем:сервисные центры в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  17. Cazrnfz表示:

    Здравствуйте!
    Мы готовы предложить дипломы любой профессии по невысоким ценам. Цена зависит от конкретной специальности, года получения и ВУЗа: diplomanruss.com/

  18. Sazruwo表示:

    Мы можем предложить дипломы любых профессий по выгодным ценам. Стоимость может зависеть от той или иной специальности, года выпуска и ВУЗа. Всегда стараемся поддерживать для покупателей адекватную политику тарифов. Для нас очень важно, чтобы дипломы были доступны для большого количества граждан. диплом купить средне техническое образование

  19. Mazrjlk表示:

    Где приобрести диплом специалиста?
    Мы оказываем услуги по продаже документов об окончании любых ВУЗов РФ. Документы изготавливаются на фирменных бланках. phpbb.com

  20. Mazrcix表示:

    Где приобрести диплом по нужной специальности?
    Готовый диплом с нужными печатями и подписями отвечает запросам и стандартам Министерства образования и науки России, неотличим от оригинала – даже со специально предназначенным оборудованием. Не стоит откладывать личные мечты и цели на несколько лет, реализуйте их с нами – отправляйте быструю заявку на изготовление документа прямо сейчас! Диплом о среднем образовании – не проблема! diplom-top.ru/kupit-diplom-sestrinskoe-delo-4/

  21. Sazrqoo表示:

    Покупка документа о высшем образовании через качественную и надежную фирму дарит ряд достоинств. Это решение дает возможность сберечь как длительное время, так и существенные финансовые средства. Впрочем, достоинств значительно больше.Мы готовы предложить дипломы любой профессии. Дипломы изготавливаются на подлинных бланках. Доступная стоимость по сравнению с большими затратами на обучение и проживание в другом городе. Покупка диплома об образовании из российского ВУЗа является выгодным шагом.
    Купить диплом: diplom-zentr.com/kupit-attestati-za-9-14/

  22. Dnrtpcw表示:

    Где заказать диплом специалиста?
    Мы предлагаем дипломы любой профессии по невысоким ценам. Мы готовы предложить документы техникумов, расположенных в любом регионе России. Вы сможете заказать диплом за любой год, указав актуальную специальность и оценки за все дисциплины. Дипломы и аттестаты выпускаются на бумаге самого высокого качества. Это позволяет делать настоящие дипломы, которые не отличить от оригинала. Они будут заверены необходимыми печатями и подписями. Стараемся поддерживать для покупателей адекватную политику тарифов. Важно, чтобы дипломы были доступными для большинства наших граждан. diplom-bez-problem.com/kupit-svidetelstvo-o-razvode-2-5

  23. Sazrkxq表示:

    Мы можем предложить дипломы любой профессии по выгодным ценам. Плюсы покупки документов в нашей компании
    Вы покупаете документ через надежную компанию. Это решение сэкономит не только средства, но и ваше драгоценное время.
    Плюсов куда больше:
    • Дипломы изготавливаются на подлинных бланках с печатями и подписями;
    • Дипломы любого ВУЗа РФ;
    • Стоимость во много раз ниже той, которую понадобилось бы платить за обучение в ВУЗе;
    • Удобная доставка как по Москве, так и в любые другие регионы России.
    Заказать диплом ВУЗа– http://vnuci.listbb.ru/viewtopic.php?f=2&t=1722/ – vnuci.listbb.ru/viewtopic.php?f=2&t=1722

  24. Sazroyy表示:

    Приобрести диплом института по доступной стоимости вы сможете, обратившись к проверенной специализированной фирме. Мы оказываем услуги по производству и продаже документов об окончании любых университетов РФ. Приобрести диплом ВУЗа– diploma-groups24.ru/kupit-diplom-v-gorode/novokuzneck.html

  25. Sazrtkz表示:

    Купить документ о получении высшего образования можно у нас в столице. Мы оказываем услуги по продаже документов об окончании любых университетов России. Вы сможете получить необходимый диплом по любой специальности, включая документы старого образца. Гарантируем, что при проверке документов работодателем, никаких подозрений не возникнет. sameasyourx.copiny.com/question/details/id/1069105

  26. Uazryvg表示:

    Добрый день!
    Для многих людей, приобрести диплом о высшем образовании – это острая потребность, уникальный шанс получить выгодную работу. Но для кого-то – это желание не терять множество времени на учебу в институте. С какой бы целью вам это не понадобилось, мы готовы помочь. Оперативно, профессионально и выгодно сделаем документ нового или старого образца на подлинных бланках со всеми требуемыми подписями и печатями.
    Основная причина, почему многие покупают документ, – желание занять определенную должность. Предположим, навыки и опыт позволяют специалисту устроиться на желаемую работу, но подтверждения квалификации нет. В том случае если для работодателя важно наличие “корочки”, риск потерять место работы довольно высокий.
    Приобрести документ о получении высшего образования можно у нас. Мы оказываем услуги по продаже документов об окончании любых университетов РФ. Вы получите диплом по любой специальности, включая документы старого образца. Гарантируем, что в случае проверки документа работодателем, никаких подозрений не появится.
    Ситуаций, которые вынуждают купить диплом ВУЗа достаточно. Кому-то срочно потребовалась работа, в итоге нужно произвести хорошее впечатление на руководителя во время собеседования. Некоторые желают попасть в престижную компанию, чтобы повысить свой статус и в дальнейшем начать свой бизнес. Чтобы не терять массу времени, а сразу начать удачную карьеру, используя имеющиеся знания, можно заказать диплом в онлайне. Вы станете полезным для общества, обретете денежную стабильность в максимально короткий срок- купить диплом о высшем образовании

  27. Diplomi_ygSa表示:

    где купить диплом повара diplomys-vsem.ru .

  28. WilliamDeeli表示:

    Мы изготавливаем дипломы психологов, юристов, экономистов и любых других профессий по доступным тарифам. Дипломы производятся на оригинальных бланках государственного образца Заказать диплом института diplomg-cheboksary.ru

  29. Lazrrqy表示:

    Где приобрести диплом специалиста?
    Приобрести диплом университета по невысокой стоимости вы можете, обращаясь к надежной специализированной фирме.: diplom-profi.ru

發佈留言

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