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

99,143 Responses

  1. Mazrnzy表示:

    Добрый день!
    Официальная покупка диплома вуза с сокращенной программой в Москве
    rushkadiplomik.ru

  2. Trefjmb表示:

    Привет, друзья!
    Как получить диплом техникума с упрощенным обучением в Москве официально
    diplomyx-man.ru/kupit-diplom-novosibirsk
    Рады помочь!.

  3. Sazrpdq表示:

    Здравствуйте!
    Диплом для вас
    animalprotect.org/forum/index.php?topic=240258.0

  4. TitusQuime表示:

    Набиуллина против развития
    Потерпевшая Дорда
    ЦБ блокирует экономический рост, связанный с деньгами простых граждан

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

    Единственная крупная попытка создать альтернативу ипотеке – работа кооператива «Бест Вей» – привела фактически к запретительным мерам в отношении кооператива и уголовному делу, рассматриваемому сейчас Приморским районным судом Санкт-Петербурга, к которому следствие – ГСУ ГУ МВД России по Санкт-Петербургу и Ленинградской области и Прокуратура Санкт-Петербурга – пытаются привязать кооператив.

    По словам председателя совета кооператива «Бест Вей», депутата Государственной думы VII созыва Сергея Крючека, выяснилась возмутительная история: мнение ЦБ о том, что кооператив имеет признаки финансовой пирамиды и его включение в предупредительный список из-за якобы наличия этих признаков, сформировалось на основании заключения некоего Краснодарского центра компетенций Южного главка ЦБ от 2019 года – который проводил некий анализ на основе открытых данных, а также обращений граждан – которые никто не видел, как и результатов самого анализа. И увидеть их скорее всего нельзя, так как документы в архиве от 2019 года, возможно, не сохранились, а сам этот центр компетенций, насколько известно, ликвидирован.

    Судя по канве событий, прозвучавшей в ходе судебного следствия, этот центр пересылает письмо в Северо-Западный главк ЦБ – только само письмо, а не все материалы исследования, и Северо-Западный главк на основании письма пишет обращение в правоохранительные органы о необходимости изучить вопрос возбуждения уголовного дела. Это письмо в 2019 году остается без ответа. Но в 2021 году уже ГУ МВД по Санкт-Петербургу и Ленобласти обращается в Северо-Западный главк ЦБ с запросом – и в ответ, по признанию самих сотрудников главка, пересылается калька с письма 2019 года. Никакой новой, дополнительной проверки не проводится.
    Парадоксы центробанковского контроля

    Почему анализ проводился в Южном главке, хотя кооператив юридически и фактически находится в Санкт-Петербурге и анализировать его деятельность должен Северо-Западный главк? Почему Северо-Западный главк выбрал роль ретранслятора, причем дважды, а не провел собственный анализ – учитывая, что кооператив находится у него под боком? Непонятно.

    И самое главное – не могли ли в основе заключения Краснодарского центра компетенций лежать недобросовестная конкуренция со стороны тех или иных организаций или намеренный оговор со стороны граждан, которые благодаря этим пересылкам скрыты от глаз? И если ответ на него положительный, Краснодарский центр, проведя проверку, и Северо-Западный главк, скопипастив краснодарское письмо, и головной офис ЦБ, опираясь на мнение своего питерского главка, которое на самом деле никто и не формулировал самостоятельно, выступили инструментом атаки на кооператив со стороны недобросовестных лиц.

    Фактически именно на основании этого мутного документа 2019 года принимается решение включить кооператив в предупредительный список ЦБ РФ осенью 2021 года. А после включения в список Банк России обращается в Генеральную прокуратуру и Роскомнадзор для блокирования официального сайта кооператива с личными кабинетами, очередью и системой платежей – что и происходит. При этом ни одним судом не установлено, что кооператив действительно является финансовой пирамидой – это может решить только суд, что признают в том числе свидетели обвинения, представляющие ЦБ.

    «Мы задавали и задаем специалистам Центробанка вопрос: почему они не запросили информацию у нас? – говорит Сергей Крючек. – Нам в ЦБ отвечают: потому что потребительский кооператив… не является для Банка России поднадзорной организацией. То есть Банк России не имеет права его проверять. Блокировать его деятельность на основании неведомых сигналов имеет, а проводить документальную проверку финансово-хозяйственной деятельности, по которой видно, работает он по закону или нет, – не имеет. Как говорится, удивительное рядом».

    При этом поиск признаков финансовой пирамиды велся на основе неких методических рекомендаций института МВД – которых никто в глаза не видел.

    «Какие признаки мы слышим? – комментируют представители кооператива. – Массированная реклама. Определения нет. И кооператив вообще не размещал рекламу – о нем рассказывали люди, рассказывала пресса, но рекламных объявлений в медиа: «Пойди туда, вступи в кооператив и купи квартиру» – не было.

    Использовался механизм сарафанного радио. В чем проблема? Этот метод продаж криминализирован? Почему банкам можно привлекать частных клиентов через этот механизм, а кооперативу нельзя?

    Средства не инвестировались. Но, простите, кооператив за период, когда он мог функционировать, то есть с середины 2014 года до февраля 2021-го, приобрел для пайщиков 2,5 тыс. квартир по всей России!»

    «Кроме того, в системе включения в предупредительный список ЦБ процедура очернения есть – а процедуры реабилитации нет, – подчеркивают представители кооператива. – Руководитель департамента ЦБ, принимавший решение, Валерий Лях сбежал из России. Депутат Гартунг еще год назад призывал защитить кооперативы – Центробанк обещал, но никаких законодательных предложений по защите кооперативов от него нет!»

    Адвокаты кооператива подчеркивают, что не оставят без внимания нанесение ущерба кооперативу и его пайщикам. «У нас появились новые основания для арбитражного разбирательства с ЦБ. Раньше кооператив проиграл в арбитражном суде, оспаривая свое включение в предупредительный список ЦБ: суд посчитал, что Банк России корректно применил свой внутренний нормативный акт о порядке включения в предупредительный список – законность самого этого акта не рассматривалась, к тому же учел, что с кооперативом связывается уголовное дело. Посмотрим, что теперь скажет арбитражный суд, узнав, что процедура оценки кооператива перед включением в предупредительный список была грубо нарушена и в уголовном деле нет никаких доказательств незаконности деятельности кооператива».

  5. Matthewchact表示:

    order prednisone 10mg: cost of prednisone – buy cheap prednisone

  6. Jamesvok表示:

    Рейтинг онлайн казино: ТОП платформ для безопасной игры
    рейтинг онлайн казино

  7. LewisTwera表示:

    http://zithromaxbestprice.pro/# zithromax cost

  8. sto_qmei表示:

    Оболонь: где традиции встречают современность, исследуйте.
    Оболонь: гастрономический рай, узнайте.
    Почему Оболонь – лучший выбор для семьи?, с местной атмосферой.
    Что делать на Оболони в выходные?, узнайте.
    Набережная Оболони: лучшие места для отдыха, прогулки.
    Оболонь с детьми: идеи для досуга, узнайте.
    Обычаи и традиции Оболони, культурное наследие.
    Ночная жизнь на Оболони: какие клубы посетить?, узнайте.
    Парки Оболони: где провести время, природой.
    Что посмотреть на Оболони?, значимые.
    Оболонь в цифрах: интересные факты, с новыми данными.
    Как воспринимают Оболонь жители?, изучите.
    Оболонь: кухня и любимые угощения, местные.
    Развлечения для подростков на Оболони, клубы.
    Что делать на Оболони летом?, посетите.
    Оболонь: транспорт и доступность, узнайте.
    Что учесть при посещении Оболони?, ознакомьтесь.
    Оболонь: от старинных улиц до современных зданий, с историей.
    сто оболонь https://stoobolongfg.kiev.ua/ .

  9. Lazrcox表示:

    Добрый день!
    Мы предлагаем дипломы любой профессии по доступным тарифам.
    diplomrushkan.ru/diplom-sssr

  10. Lazrxzr表示:

    Здравствуйте!
    Приобрести диплом ВУЗа.
    mans-diplom.ru/kupit-diplom-v-ufe

  11. Mazrcah表示:

    Добрый день!
    Быстрое обучение и получение диплома магистра – возможно ли это?
    rushkas-diplomasxx.ru/diplom-sssr

  12. Mazrltu表示:

    Привет!
    Покупка диплома о среднем полном образовании: как избежать мошенничества?
    diplomrushka.ru/attestat-9-klassov

  13. Matthewchact表示:

    nolvadex for sale: tamoxifen medication – tamoxifen vs clomid

  14. Mazrvac表示:

    Добрый день!
    Сколько стоит диплом высшего и среднего образования и как это происходит?
    rushkadiplomik.ru

  15. Danrfom表示:

    Добрый день!
    Мы можем предложить дипломы любой профессии.
    shugakukai.co.jp/куплю-диплом-стоимость
    Окажем помощь!.

  16. Danrfqc表示:

    Здравствуйте!
    Мы изготавливаем дипломы любой профессии.
    shugakukai.co.jp/куплю-диплом-стоимость
    Поможем вам всегда!.

  17. Ekccaf表示:

    trileptal uk – cheap pirfenex for sale buy levothyroxine medication

  18. Uazrogy表示:

    Привет!
    Купить диплом о высшем образовании.
    network-6342899.mn.co/posts/61724029

  19. Lazrbgc表示:

    Здравствуйте!
    Мы готовы предложить дипломы психологов, юристов, экономистов и любых других профессий по приятным тарифам.
    diplomrushkan.ru/diplom-tekhnikuma-kolledzha

  20. Trefyuf表示:

    Привет, друзья!
    Диплом техникума купить официально с упрощенным обучением в Москве
    mans-diplom.ru/kupit-diplom-novosibirsk
    Рады помочь!.

  21. Xazrzxx表示:

    Здравствуйте!
    Купить документ о получении высшего образования
    arusak-diploms-srednee.ru/kupit-diplom-sssr

  22. Matthewchact表示:

    get cheap propecia without a prescription: generic propecia – generic propecia price

  23. Matthewchact表示:

    order generic propecia no prescription: propecia no prescription – get propecia tablets

  24. LewisTwera表示:

    https://propeciabestprice.pro/# cost of generic propecia without prescription

  25. Diplomi_laEa表示:

    Привет, друзья!
    Приобрести документ о получении высшего образования вы можете в нашей компании в столице.
    rushkas-diplomxx.ru

發佈留言

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