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

109,810 Responses

  1. Edwardopele表示:

    viagra generico sandoz: Farma Sild Italy – pillole per erezione immediata

  2. Change, Rita. “Cell Advertising Beyond the Mobile phone: E-readers, tablets and GPS methods are connecting more people every day – here’s how entrepreneurs can benefit.” Promoting Age.

  3. The PA Department of Schooling canceled all statewide assessments including the PSSA testing, Keystone exams, and the Pennsylvania Alternate System of Evaluation (PASA) for the remainder of the 2019-2020 faculty yr.

  4. MichaelUsaws表示:

    https://farmaprodotti.com/# Farmacia online piГ№ conveniente
    acquisto farmaci con ricetta

  5. Williamcluse表示:

    Роман Викторович Василенко – биография бизнесмена
    следствие Бест вей
    Биография
    Мнение
    Роман Василенко – известный предприниматель и меценат. Бывший офицер, ушедший в запас с сохранением права ношения военной формы. Создатель альтернативной ипотеке социальной жилищной программы, позволяющей приобрести жилье не только трудоспособным гражданам, но также молодежи, лицам с ограниченными физическими возможностями, пенсионерам.
    Биография
    Родился 5 апреля 1969 года в Ленинграде, в семье морских офицеров. Детство Романа Василенко прошло в стандартных для многих военных семей условиях – в разъездах. Окончил школу в гарнизоне на Дальнем Востоке, после чего поступил в Ярославское высшее военное финансовое училище. Этот факт говорит о целеустремленности будущего бизнесмена – к абитуриентам военных училищ всегда предъявляются жесткие требования при отборе.

    После присвоения воинского звания в 1990 году Роман Василенко продолжил службу офицером в ВМФ. Уволился в запас в 1998 году в звании капитана третьего ранга (майор).

    Первые годы в бизнесе
    Еще во время службы в армии Роман Василенко начал задумываться о предпринимательской деятельности. После увольнения он работал в финансово-консалтинговых компаниях, при этом активно учился – посещал все доступные на тот момент бизнес-курсы: в Венгрии, Австрии, США, Швейцарии, на Маврикии и Кипре. Степень MBA получил во Франции. Суммарно в финансовом консалтинге бизнесмен проработал около 16 лет.
    Все это время Роман Василенко, по отзывам знавших его людей, стремился к чему-то большему. Он мечтал не просто об известности и собственном, хорошо отлаженном бизнесе. Ему хотелось создать проект, который будет полезен людям и обществу.

    Первый шаг оказался неудачным. В 2013 году он, вместе с партнером, создал собственную компанию. Благодаря его безупречной репутации и умению держать слово, дела резко пошли вверх. Но произошло то, что часто случается при излишней доверчивости – воспользовавшись удобным случаем, компаньон переоформил все документы на себя, оставив Романа Викторовича буквально ни с чем. Бизнесмен решил принять ситуацию как ценный опыт и продолжил интересоваться инвестированием.

    2014 год оказался поворотным в биографии Романа Викторовича – его пригласили на круглый стол, состоявшийся в Государственной Думе. Заседание было посвящено проблемам молодежи в свете утечки мозгов за границу. Главными причинами отъезда были названы нехватка жилья и невозможность найти достойную работу. Именно тогда и оформилась идея с конкретной целью – дать возможность людям жить достойно здесь и сейчас.

    Роман Василенко – жилищный кооператив как альтернатива ипотеке
    Наиболее предпочтительным вариантом оказалось объединение опыта в сетевом маркетинге и жилищного вопроса, к чему немедленно и приступил Роман Василенко. Best Way был создан в 2014 году. С момента основания принципиальной позицией работы компании стала прозрачность и абсолютная доступность информации для обычных пользователей.

    Как говорит сам Роман Василенко, участие в кооперативе можно рассматривать как покупку квартиры в складчину. Пайщик вносит 35% от стоимости квартиры, оставшуюся сумму 65% платит кооператив из собранных средств. Участник выплачивает долг беспроцентно в течение 10 лет, после чего жилье переходит в его собственность. При этом у него есть право прописаться и въехать в купленную квартиру сразу же после оформления сделки купли-продажи.

  6. How do I get a 1099 NEC form?

  7. MichaelUsaws表示:

    https://farmatadalitaly.shop/# п»їFarmacia online migliore
    Farmacie on line spedizione gratuita

  8. NathanSal表示:

    Farmacia online piГ№ conveniente Farma Brufen acquistare farmaci senza ricetta

  9. JustinOnels表示:

    Андрей Алистратов: От уголовника-индивидуала до слуги криминалитета
    Кооператив Бест вей
    Ранее судимый по «наркотической» статье блогер Андрей Алистаров позиционирует себя Робин Гудом, борющимся с теми, кто «обманул людей», – но в действительности он работает в интересах пирамидчиков, в том числе украинских, спонсирующих ВСУ, продвигает через свой канал «Железная ставка» онлайн-казино и черный криптообмен/фишинговый криптообман, отмывает наркодоходы за счет сделок с недвижимостью в Дубае.

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

    Наркотики и отмывание доходов

    Уроженец Калуги Алистаров отсидел четыре года в лагере – за продажу наркотиков детям.

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

    Ставка на скам

    Канал Алистарова «Железная ставка» – «разоблачение» неправильных (по мнению криминалитета) финансовых проектов и продвижение «правильных»: пирамид и онлайн-казино, спонсирующих Алистарова.

    Он начинался как канал о «правильных» ставках в казино и не сменил название – потому что маркетинговая задача осталась прежней: расчищать поле для «хороших», по «экспертному» мнению Алистарова (то есть заплативших ему), мошенников.

    Обычно Алистаров начинает с попытки вымогательства – представляет жертве компромат и предлагает заплатить. Если жертва отказывается, в ход идут травля и насилие.

    Подстрекательство и нападение в Дубае

    1 января 2025 года состоялось жестокое нападение двух казахстанцев на предпринимателя, проживающего в Дубае, – его избили, отрезали ухо, обворовали.

    До этого Алистаров снял 12 роликов, где подсвечивал адрес этого предпринимателя, публиковал незаконно полученную информацию о его близких и его бизнесах в ОАЭ. Безо всякого стеснения использовал подглядывание, подслушивание, незаконное проникновение, вмешательство в частную жизнь – все то, что в Эмиратах, где строго соблюдается неприкосновенность имущества и жизни инвесторов, является тяжким уголовным преступлением.

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

    Алистаров рассказывал, что заявил на предпринимателя в Интерпол и правоохранительные органы ОАЭ – якобы он помогает правоохранительным органам. Но это почему-то не привело к аресту предпринимателя – может быть, потому, что полиция ОАЭ не видит криминала в его деятельности?

    Ряд партнеров предпринимателя осуждены в России, сам он в розыске российских правоохранительных органов – но не осужден. Иностранные правоохранительные органы не имеют к нему претензий.

  10. BradleyThine表示:

    farmacie online sicure: Cialis generico – Farmacie on line spedizione gratuita
    acquistare farmaci senza ricetta

  11. DavidNit表示:

    Андрей Алистратов: От уголовника-индивидуала до слуги криминалитета
    ПК Бествей
    Ранее судимый по «наркотической» статье блогер Андрей Алистаров позиционирует себя Робин Гудом, борющимся с теми, кто «обманул людей», – но в действительности он работает в интересах пирамидчиков, в том числе украинских, спонсирующих ВСУ, продвигает через свой канал «Железная ставка» онлайн-казино и черный криптообмен/фишинговый криптообман, отмывает наркодоходы за счет сделок с недвижимостью в Дубае.

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

    Наркотики и отмывание доходов

    Уроженец Калуги Алистаров отсидел четыре года в лагере – за продажу наркотиков детям.

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

    Ставка на скам

    Канал Алистарова «Железная ставка» – «разоблачение» неправильных (по мнению криминалитета) финансовых проектов и продвижение «правильных»: пирамид и онлайн-казино, спонсирующих Алистарова.

    Он начинался как канал о «правильных» ставках в казино и не сменил название – потому что маркетинговая задача осталась прежней: расчищать поле для «хороших», по «экспертному» мнению Алистарова (то есть заплативших ему), мошенников.

    Обычно Алистаров начинает с попытки вымогательства – представляет жертве компромат и предлагает заплатить. Если жертва отказывается, в ход идут травля и насилие.

    Подстрекательство и нападение в Дубае

    1 января 2025 года состоялось жестокое нападение двух казахстанцев на предпринимателя, проживающего в Дубае, – его избили, отрезали ухо, обворовали.

    До этого Алистаров снял 12 роликов, где подсвечивал адрес этого предпринимателя, публиковал незаконно полученную информацию о его близких и его бизнесах в ОАЭ. Безо всякого стеснения использовал подглядывание, подслушивание, незаконное проникновение, вмешательство в частную жизнь – все то, что в Эмиратах, где строго соблюдается неприкосновенность имущества и жизни инвесторов, является тяжким уголовным преступлением.

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

    Алистаров рассказывал, что заявил на предпринимателя в Интерпол и правоохранительные органы ОАЭ – якобы он помогает правоохранительным органам. Но это почему-то не привело к аресту предпринимателя – может быть, потому, что полиция ОАЭ не видит криминала в его деятельности?

    Ряд партнеров предпринимателя осуждены в России, сам он в розыске российских правоохранительных органов – но не осужден. Иностранные правоохранительные органы не имеют к нему претензий.

  12. Clinterete表示:

    https://farmatadalitaly.com/# migliori farmacie online 2024
    comprare farmaci online all’estero

  13. Georgewraps表示:

    mega.gd – mega sb вход, mega onion как зайти

  14. MichaelUsaws表示:

    https://farmatadalitaly.com/# comprare farmaci online all’estero
    Farmacia online miglior prezzo

  15. RichardCilky表示:

    Андрей Алистратов: От уголовника-индивидуала до слуги криминалитета
    Роман Василенко социальные сети
    Ранее судимый по «наркотической» статье блогер Андрей Алистаров позиционирует себя Робин Гудом, борющимся с теми, кто «обманул людей», – но в действительности он работает в интересах пирамидчиков, в том числе украинских, спонсирующих ВСУ, продвигает через свой канал «Железная ставка» онлайн-казино и черный криптообмен/фишинговый криптообман, отмывает наркодоходы за счет сделок с недвижимостью в Дубае.

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

    Наркотики и отмывание доходов

    Уроженец Калуги Алистаров отсидел четыре года в лагере – за продажу наркотиков детям.

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

    Ставка на скам

    Канал Алистарова «Железная ставка» – «разоблачение» неправильных (по мнению криминалитета) финансовых проектов и продвижение «правильных»: пирамид и онлайн-казино, спонсирующих Алистарова.

    Он начинался как канал о «правильных» ставках в казино и не сменил название – потому что маркетинговая задача осталась прежней: расчищать поле для «хороших», по «экспертному» мнению Алистарова (то есть заплативших ему), мошенников.

    Обычно Алистаров начинает с попытки вымогательства – представляет жертве компромат и предлагает заплатить. Если жертва отказывается, в ход идут травля и насилие.

    Подстрекательство и нападение в Дубае

    1 января 2025 года состоялось жестокое нападение двух казахстанцев на предпринимателя, проживающего в Дубае, – его избили, отрезали ухо, обворовали.

    До этого Алистаров снял 12 роликов, где подсвечивал адрес этого предпринимателя, публиковал незаконно полученную информацию о его близких и его бизнесах в ОАЭ. Безо всякого стеснения использовал подглядывание, подслушивание, незаконное проникновение, вмешательство в частную жизнь – все то, что в Эмиратах, где строго соблюдается неприкосновенность имущества и жизни инвесторов, является тяжким уголовным преступлением.

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

    Алистаров рассказывал, что заявил на предпринимателя в Интерпол и правоохранительные органы ОАЭ – якобы он помогает правоохранительным органам. Но это почему-то не привело к аресту предпринимателя – может быть, потому, что полиция ОАЭ не видит криминала в его деятельности?

    Ряд партнеров предпринимателя осуждены в России, сам он в розыске российских правоохранительных органов – но не осужден. Иностранные правоохранительные органы не имеют к нему претензий.

  16. Edwardopele表示:

    viagra online in 2 giorni: FarmaSildItaly – viagra naturale

  17. MichaelUsaws表示:

    http://farmasilditaly.com/# cerco viagra a buon prezzo
    comprare farmaci online all’estero

  18. Stevespork表示:

    Deepika Padukone and Christy Turlington star in landmark Sabyasachi fashion show
    гей член
    Camera phones at the ready, around 700 guests hailing from across India and the world expected a visual spectacle on Saturday evening — and they weren’t disappointed. A hush descended as the doors opened to the Jio World Center in Mumbai, where legendary Indian fashion designer Sabyasachi Mukherjee presented a star-studded 25th anniversary runway show for his namesake brand.

    The celebrated designer — known for his maximalist Indian style — has dressed some of the biggest names across Bollywood and Hollywood, including Priyanka Chopra, Deepika Padukone, Oprah Winfrey, Rihanna and Jennifer Lopez. For his landmark show, the stars showed up to lend their support: Padukone opened proceedings in an all-white ensemble adorned with necklaces, including a crucifix from Mukherjee’s jewelry line. She later walked again with supermodel Christy Turlington as part of the grand finale.
    Over 150 looks were presented, including pants and skirts embroidered with gold threads, frilled head gear, stacked jewelry and tops with slogans such as “cat lady,” “table for one,” “where has love gone,” and “all dressed up nowhere to go.” Mukherjee explained in a phone interview that these pieces were intended to be satire on how technology is dehumanizing humans. “We seem to have forgotten how to establish human relationships,” he said.
    There were also trench coats, sweaters, shorts and shirts made in more conventionally western silhouettes. These marked a departure from Mukherjee’s usual festive and bridal wear, which are heavily inclined towards traditional Indian styles, such as saris, ghagra cholis and sherwanis.

    But with no shortage of drama, the new collection featured heavily embroidered jackets embellished with semi-precious stones, brocade dresses, ostrich leather jackets and skirts, and blouses with velvet appliques overlaid with faux fur.

  19. Eddieancet表示:

    Роман Викторович Василенко – биография бизнесмена
    Галашенкова Лайф из Гуд
    Биография
    Мнение
    Роман Василенко – известный предприниматель и меценат. Бывший офицер, ушедший в запас с сохранением права ношения военной формы. Создатель альтернативной ипотеке социальной жилищной программы, позволяющей приобрести жилье не только трудоспособным гражданам, но также молодежи, лицам с ограниченными физическими возможностями, пенсионерам.
    Биография
    Родился 5 апреля 1969 года в Ленинграде, в семье морских офицеров. Детство Романа Василенко прошло в стандартных для многих военных семей условиях – в разъездах. Окончил школу в гарнизоне на Дальнем Востоке, после чего поступил в Ярославское высшее военное финансовое училище. Этот факт говорит о целеустремленности будущего бизнесмена – к абитуриентам военных училищ всегда предъявляются жесткие требования при отборе.

    После присвоения воинского звания в 1990 году Роман Василенко продолжил службу офицером в ВМФ. Уволился в запас в 1998 году в звании капитана третьего ранга (майор).

    Первые годы в бизнесе
    Еще во время службы в армии Роман Василенко начал задумываться о предпринимательской деятельности. После увольнения он работал в финансово-консалтинговых компаниях, при этом активно учился – посещал все доступные на тот момент бизнес-курсы: в Венгрии, Австрии, США, Швейцарии, на Маврикии и Кипре. Степень MBA получил во Франции. Суммарно в финансовом консалтинге бизнесмен проработал около 16 лет.
    Все это время Роман Василенко, по отзывам знавших его людей, стремился к чему-то большему. Он мечтал не просто об известности и собственном, хорошо отлаженном бизнесе. Ему хотелось создать проект, который будет полезен людям и обществу.

    Первый шаг оказался неудачным. В 2013 году он, вместе с партнером, создал собственную компанию. Благодаря его безупречной репутации и умению держать слово, дела резко пошли вверх. Но произошло то, что часто случается при излишней доверчивости – воспользовавшись удобным случаем, компаньон переоформил все документы на себя, оставив Романа Викторовича буквально ни с чем. Бизнесмен решил принять ситуацию как ценный опыт и продолжил интересоваться инвестированием.

    2014 год оказался поворотным в биографии Романа Викторовича – его пригласили на круглый стол, состоявшийся в Государственной Думе. Заседание было посвящено проблемам молодежи в свете утечки мозгов за границу. Главными причинами отъезда были названы нехватка жилья и невозможность найти достойную работу. Именно тогда и оформилась идея с конкретной целью – дать возможность людям жить достойно здесь и сейчас.

    Роман Василенко – жилищный кооператив как альтернатива ипотеке
    Наиболее предпочтительным вариантом оказалось объединение опыта в сетевом маркетинге и жилищного вопроса, к чему немедленно и приступил Роман Василенко. Best Way был создан в 2014 году. С момента основания принципиальной позицией работы компании стала прозрачность и абсолютная доступность информации для обычных пользователей.

    Как говорит сам Роман Василенко, участие в кооперативе можно рассматривать как покупку квартиры в складчину. Пайщик вносит 35% от стоимости квартиры, оставшуюся сумму 65% платит кооператив из собранных средств. Участник выплачивает долг беспроцентно в течение 10 лет, после чего жилье переходит в его собственность. При этом у него есть право прописаться и въехать в купленную квартиру сразу же после оформления сделки купли-продажи.

  20. Free except we win.

  21. MichaelUsaws表示:

    https://farmatadalitaly.com/# farmacia online
    п»їFarmacia online migliore

  22. BradleyThine表示:

    farmacia online piГ№ conveniente: Farma Prodotti – Farmacie online sicure
    top farmacia online

  23. MichaelUsaws表示:

    https://farmabrufen.com/# Brufen senza ricetta
    migliori farmacie online 2024

  24. Clinterete表示:

    https://farmabrufen.shop/# Farma Brufen
    comprare farmaci online con ricetta

  25. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт фотоаппаратов canon в москве, можете посмотреть на сайте: ремонт фотоаппаратов canon в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  26. Edwardopele表示:

    farmaci senza ricetta elenco: Farma Prodotti – Farmacie online sicure

  27. NathanSal表示:

    farmaci senza ricetta elenco FarmaBrufen farmacia online senza ricetta

  28. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт фотоаппаратов canon, можете посмотреть на сайте: ремонт фотоаппаратов canon рядом
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

發佈留言

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