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還有很多好用的功能,可以到它官方的網站閱讀一些文章,基本上所有的數學運算應該都可以透過它來玩完成。
индивидуалки мск https://vlg.prostitutki.sex
best online pharmacies in mexico: mexico drug stores pharmacies – reputable mexican pharmacies online
mexico pharmacies prescription drugs: best online pharmacies in mexico – medication from mexico pharmacy
Магазин Экипировка Эксперт
Капюшон К12
Боец, Экипировка Эксперт — это розничный магазин, сотрудничающий с рядом оптовых складов и производителей. Это значит, что при должном количестве товара мы дадим очень хорошие цены.
Название взяли независимо от того, что наша страна сейчас проводит Специальную Военную Операцию, хорошая снаряга и экипировка нужна всегда. Готовишься в бой, мобилизован, привык активно проводить время или решил подготовить тревожный чемоданчик, мы поможем тебе. Наши клиенты: фонды, медики, такие же как ты бойцы СВО и обычные неравнодушные граждане.
Самое главное, что нужно о нас знать, мы детально объясняем, что и как работает, чтобы ты сделал правильный выбор не переплачивая.
Обращаясь к нам, не удивляйся, если ты получишь честный и жесткий ответ – часто случается так, что мы знаем лучше, что именно нужно нашему гостю. Особенно это касается мобилизованных без опыта боевых действий. Здесь ты можешь полагаться на нашу экспертность.
Одна из наших основных целей предоставить тебе возможность удобной и безопасной покупки: хоть за наличку, хоть по карте, хоть по счету. Повторимся, если нужна оптовая поставка, согласуем и отгрузим. Именно от того, как ты производишь оплату, зависит цена заказа.
Для нас важно предоставить тебе качественную экипировку и снаряжение соблюдая при этом законы нашей страны. Боец, помни, мы помогаем фондам, нуждающимся людям, подразделениям в зоне СВО. Отчеты об этом опубликованы как на сайте. На эту деятельность уходит значительная часть выручки. Делая покупки в нашем магазине, ты помогаешь людям и фронту. Уверен, что это найдет отзыв в твоем сердце.
У нашей команды есть набор ценностей: честность, справедливость, сопереживание, взаимопомощь, мужество, патриотичность. Уверены, ты их разделяешь, и мы легко найдем общий язык. Ну а если что-то пойдет не так, не руби с плеча, объясни, где мы ошиблись и поверь, мы разберемся и исправим. Наш девиз “In hostem omnia licita” – по отношению к врагу дозволено все. Возьми этот девиз, он поможет тебе принять правильное решение в трудной ситуации, с честью выполнить боевую задачу и вернуться домой живым и здоровым!
buying prescription drugs in mexico: buying prescription drugs in mexico online – mexican rx online
mexico drug stores pharmacies: buying prescription drugs in mexico online – mexican mail order pharmacies
mexican rx online buying prescription drugs in mexico mexico pharmacy
Здравствуйте!
Мы изготавливаем дипломы любых профессий.
qoq.me/read-blog/124_ishem-nadezhnyj-i-proverennyj-onlajn-magazin-s-attestatami-i-diplomami
Поможем вам всегда!.
Привет!
Заказать диплом о высшем образовании.
micchat.online/read-blog/1525
Привет!
Купить документ ВУЗа вы имеете возможность в нашей компании в Москве.
ast-diplomy.com/kupit-diplom-perm
проститутки коломна проститутки метро щелковская
шлюхи мск https://samara.prostitutki.sex
увеличение полового члена москва
проститутки метро отрадное шлюхи в балашихе
проститутки чехов https://saratov.prostitutki.sex
My web page: Daycares popular listings
What a thought-provoking piece, thanks for the insights.
Добрый день!
Мы изготавливаем дипломы любой профессии по выгодным тарифам.
horordark.ru/kupit-diplom-onlayn-nadezhno-i-udobno
best online pharmacies in mexico best online pharmacies in mexico mexico drug stores pharmacies
п»їbest mexican online pharmacies: buying prescription drugs in mexico – mexican online pharmacies prescription drugs
buy diflucan australia
mexican online pharmacies prescription drugs: pharmacies in mexico that ship to usa – buying from online mexican pharmacy
mexican drugstore online: mexican border pharmacies shipping to usa – mexican pharmaceuticals online
Акции и промокоды для выгодных покупок Акции и промокоды для выгодных покупок .
стоимость создания сайта https://biztest.ru .
best online pharmacies in mexico: mexico drug stores pharmacies – buying from online mexican pharmacy
создание сайтов создание сайтов .
mexico pharmacies prescription drugs: medication from mexico pharmacy – mexico pharmacies prescription drugs
purple pharmacy mexico price list mexico pharmacy buying prescription drugs in mexico
Получите лучшие промокоды прямо сейчас Получите лучшие промокоды прямо сейчас .