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

102,384 Responses

  1. Leonardpar表示:

    https://indiapharmacy.shop/# best india pharmacy

  2. DouglasGed表示:

    purple pharmacy mexico price list: Medicines Mexico – medicine in mexico pharmacies

  3. DouglasGed表示:

    online erectile dysfunction pills: ed pills online – erectile dysfunction online prescription

  4. комплексное продвижение сайтов москва комплексное продвижение сайтов москва .

  5. Diplomi_kxEa表示:

    Здравствуйте!
    Заказать документ ВУЗа вы можете у нас.
    fotoblog365.com/2017/02/sony-a6500

  6. Lazracl表示:

    Привет!
    Мы предлагаем дипломы любых профессий по приятным тарифам.
    telegra.ph/metodika-motivaciya-obucheniya-v-vuze-08-02

  7. Leonardpar表示:

    http://edpillpharmacy.store/# buy erectile dysfunction medication

  8. GregoryDouts表示:

    Окунись в мир захватывающих игр и быстрых выигрышей с 1Win казино – твой шанс на удачу начинается здесь!
    1 вин

  9. DouglasGed表示:

    indian pharmacy online: Online India pharmacy – Online medicine home delivery

  10. GregoryDouts表示:

    Окунись в азарт с 1Win казино – получай бонусы и выигрыши прямо сейчас!
    зеркало 1Win

  11. индийский пасьянс гадать бесплатно http://www.indiyskiy-pasyans-online.ru .

  12. Leonardpar表示:

    https://edpillpharmacy.store/# ed treatments online

  13. GregoryDouts表示:

    Откройте мир азарта и выигрышей с 1Win Casino — Ваш билет к захватывающим играм и щедрым бонусам!
    Играть в казино 1Win

  14. онлайн гадание индийский пасьянс онлайн гадание индийский пасьянс .

  15. DouglasGed表示:

    mexican pharmaceuticals online: Medicines Mexico – purple pharmacy mexico price list

  16. TimothyBow表示:

    Услуги адвоката
    юрист по жкх вопросам
    Ищете надежную юридическую помощь? Официальный рейтинг адвокатов и юристов поможет найти проверенных специалистов, основываясь на высоком профессионализме, богатом опыте и положительных отзывах клиентов. Мы предлагаем уникальную возможность выбрать адвоката или юриста, способного эффективно разрешить ваше дело, будь то вопрос наследственного права, семейные споры или уголовного дела. Наш рейтинг поможет вам найти идеального кандидата, готового защитить ваши интересы в любой юридической ситуации и оказать юридические услуги профессионально и качественно

  17. Thomasknith表示:

    Life is Good — почему произошёл технический СКАМ проекта
    геи жестко
    Компания «Life Is Good» позиционировала себя как финансово-консалтинговый проект. Она привлекала денежные активы от клиентов, формируя из них инвестиционные вклады, которые приносят пассивный доход от 20% годовых в валюте.

    Официальный сайт компании — lifeisgood.company. Ценной информации на нем очень мало. В разделе «О компании» вместо рассказа о том, чем занимается компания, — общие фразы про финансовую независимость и благополучие клиентов, а также шесть рекламных роликов с известными людьми.
    Данная компания создана в 2014 году. Зарегистрирована в государстве-офшоре Белиз, что находится в Центральной Америке. Соответственно, выданный там сертификат не имеет на территории России никакой юридической силы. Лицензия ЦБ РФ отсутствует.

    Руководитель компании — Роман Василенко, обладатель многочисленных фотошопных регалий, количеству которых позавидовал бы даже Александр Невский (уот так уот), ветеран МЛМ движения в РФ, ну практически святой человек.

    С 1990 года по 1999 год служил в Вооруженных силах РФ.

    После службы работал в инвестиционной компании Save-Invest (Si), зарегистрированной в Швейцарии, которая обещала инвестиционные продукты со сверх доходностью. В 2000х годах газета Коммерсантъ выпустила статью о расследовании сотрудников ФСБ на предмет ведения мошеннической деятельности в РФ.

    В 2012 году руководитель Оренбургского управления Татьяна Горынина, обманувшая своих клиентов на 50 млн. получила 6 лет тюрьмы за мошенничество.

    Далее работал в инвестиционной компании “Life Division”, которая до сих пор продолжает свою работу.

    Также Роман активно ведёт блог в инстаграмме и на ютуб, темы всё те же — успешный успех, освободись от рабства, нужно только захотеть и т.д.

    Участники делали ежемесячные взносы в счет стоимости будущей квартиры. Значительная часть средств шла организаторам компании, а все остальное делились между вышестоящими пайщиками.
    Наступила стадия «критического дна», т.е. взносов от новичков поступало меньше, чем необходимо выплачивать более «старым» клиентам, основатели компании приостановили свою деятельность, а суммы, которые многие годы вносили пайщики, им просто не вернули.

    Life Is Good позиционировала себя как европейская компания, но привлекала в основном Россиян. Кстати, официальный сайт Life is Good переведен сразу на 9 языков. Непонятно для чего это сделано, ведь компания работает только в России, Казахстане и Киргизии. Наверное, поэтому над переводом на английский язык здесь не стали заморачиваться. С первого взгляда видны грубые грамматические ошибки.

    Компания работала в сотрудничестве с еще тремя: Best Way, Hermes Management и Vista.

    Гарантий сохранности денег не давала ни «Лайф-из-гуд», ни «Гермес-менеджмент». Но при этом «Лайф-из-гуд» все же предлагала страхование вложенных денег по оригинальной схеме.

  18. индийский пасьянс онлайн бесплатно на ближайшее будущее индийский пасьянс онлайн бесплатно на ближайшее будущее .

  19. Trefsxn表示:

    Здравствуйте!
    Полезные советы по безопасной покупке диплома о высшем образовании
    mans-diploms.ru/attestat-za-9-klass
    Окажем помощь!.

  20. JamesJus表示:

    Как обратиться к нам за юридической консультацией?
    консультация юриста по алиментам бесплатно
    Чтобы получить юридическую консультацию, с нами можно связаться онлайн или же по телефону. Мы подберём вам юриста, специализирующегося именно в той сфере законодательства, с которой связаны ваши проблемы. Это поможет быстро достичь нужного результата и, безусловно, будет лучшим выбором, если вам нужно незамедлительно получить юридические услуги.

    Бесплатная юридическая консультация по телефону может стать вашим спасением. Предоставленная нами консультация поможет вам сориентироваться в вопросе и решить, нужна ли вам дальнейшая помощь, которую может обеспечить Коллегия адвокатов № 1. После того как юридическая консультация по телефону будет проведена и проблемы будут чётко обозначены, наши юристы могут оказать вам и дальнейшие услуги — от оформления нужных документов до представления ваших интересов в зале суда.

  21. GarrettBic表示:

    Мой Источник Права специализируется на предоставлении всего комплекса юридических услуг от консультаций до ведения сложнейших дел в судах различных инстанций.
    консультация юриста по алиментам бесплатно
    Несмотря на молодость компании, специалисты неоднократно доказывали свою компетенцию в решении сложных юридических задач. Помимо консультирования граждан и юридической поддержки компаний, адвокаты осуществляют успешную правовую защиту наших клиентов в суде.

    Основные направления деятельности компании:

    оказание юридических услуг организациям;
    правовая поддержка физических лиц;
    регистрационные действия и ликвидация.
    Каждый специалист имеет специализацию в области права и большой практический опыт. Средний стаж юридической практики наших адвокатов – 20 лет. Гарантией победы в решении сложнейших дел клиентов является грамотный подход, богатый профессиональный и жизненный опыт наших адвокатов. Мы с гордостью отмечаем высокие компетенции специалистов, что подтверждается положительными отзывами наших клиентов и доверительными отношениями с ними.

    Более половины клиентов МИП в дальнейшем регулярно обращаются к нам за юридической консультацией.

    Наши судебные защитники и партнеры находятся в курсе последних изменений в законодательстве, принимают активное участие в жизни юридического сообщества, регулярно выступают на форумах и семинарах перед представителями делового сообщества большой судебный опыт дает нам возможность исключить ошибочные действия при защите клиентов и предусматривать заранее возникновение любых рисков.

    Мы уверены, что выбор адвоката строится на основании доверия к нему, поэтому стремимся не допускать расхождения слов с делом.

  22. GregoryDouts表示:

    Открой мир азарта с 1Win Casino: бонусы, игры и огромные выигрыши ждут тебя!
    Зеркало казино 1win

  23. MathewCluth表示:

    Elon Musk’s X just sued a nonprofit advertising group out of existence
    адвокаты по бракоразводным процессам москва
    A major ad industry group is shutting down, days after Elon Musk-owned X filed a lawsuit that claimed the group illegally conspired to boycott advertising on his platform.

    “GARM is a small, not-for-profit initiative, and recent allegations that unfortunately misconstrue its purpose and activities have caused a distraction and significantly drained its resources and finances,” the group said in a statement Friday. “GARM therefore is making the difficult decision to discontinue its activities.”

    The group, Global Alliance for Responsible Media, also known as GARM, is a voluntary ad-industry initiative run by the World Federation of Advertisers that aims to help brands avoid having their advertisements appear alongside illegal or harmful content. GARM confirmed it is still planning to defend itself in court.

    The end of GARM marks a temporary victory for Musk and X CEO Linda Yaccarino, even though a judge hasn’t made a ruling yet.

    “No small group should be able to monopolize what gets monetized. This is an important acknowledgement and a necessary step in the right direction. I am hopeful that it means ecosystem-wide reform is coming,” Yaccarino posted on X Thursday.

    However, the lawsuit could drive away even more advertisers from X, Nandini Jammi and Claire Atkin, founders of watchdog group Check My Ads Institute wrote in an op-ed Thursday. “Everyone can see that advertising on X is a treacherous business relationship for advertisers,” they said.

  24. GregoryDouts表示:

    Окунись в мир азартных игр с 1Win Casino — джекпоты и бонусы ждут тебя!
    https://1win-casino.skin

  25. Alfredtom表示:

    Юридические услуги от адвокатов и юристов с самым высоким рейтингом
    адвокаты г москвы
    Если вам нужна помощь по любым юридическим вопросам в Москве, наша команда высококлассных юристов работает для вас 24 часа в сутки, 7 дней в неделю.
    У нас есть группа экспертов, которые предоставляют консультации и помощь по различным юридическим вопросам: семейные, финансовые или административные. Мы внимательно исследуем Вашу ситуацию и разработаем эффективный план действий по юридической защите. Изучим доказательную базу и подготовим необходимые документы, которые законно решат Ваши юридические трудности. Вы можете связаться с нами по телефону, онлайн или лично, чтобы обсудить проблему.

    Юристы Межрайонной ассоциации Москвы
    Компетентные специалисты, эксперты в различных областях права. Они помогут в решении самых разных юридических проблем:

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

    Адвокаты Межрайонной ассоциации Москвы могут помочь Вам положительно решить даже трудно доказуемые ситуации. Например, наши клиенты выигрывали дела, связанные с:
    ДТП;
    взысканием долгов;
    бракоразводными процессами;
    разделом имущества.
    Наши адвокаты лично сопровождают клиентов, представляют интересы на встречах с представителями исполнительных, надзорных и государственных органов, а также в суде.

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

  26. Diplomi_akEa表示:

    Добрый день!
    Купить документ института вы сможете в нашем сервисе.
    rushkas-diplomxx.ru

  27. DouglasGed表示:

    п»їbest mexican online pharmacies: mexico pharmacy win – purple pharmacy mexico price list

  28. DouglasGed表示:

    reputable indian pharmacies: Cheapest online pharmacy – buy medicines online in india

  29. RaymondZep表示:

    ПокерОК – твоё VIP-место в мире онлайн покера, где игра встречается с удачей!
    ПокерОК

發佈留言

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