PROG_WAY_BLOG Telegram 106
​​Проблема 0.1 + 0.2

Часто на собеседовании можно встретить такой вопрос:

Что будет выведено в консоль?
0.1 + 0.2 == 0.3 // ?

Любой адекватный человек, который знает школьную математику, ответил бы, что в консоли будет выдано значение true, но это неверный ответ. Будет false.

0.1 + 0.2 === 0.30000000000000004

Что за бред? Почему? Зачем?

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

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

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

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

Спасибо за прочтение, это важно для меня.

#theory



tgoop.com/prog_way_blog/106
Create:
Last Update:

​​Проблема 0.1 + 0.2

Часто на собеседовании можно встретить такой вопрос:

Что будет выведено в консоль?
0.1 + 0.2 == 0.3 // ?

Любой адекватный человек, который знает школьную математику, ответил бы, что в консоли будет выдано значение true, но это неверный ответ. Будет false.

0.1 + 0.2 === 0.30000000000000004

Что за бред? Почему? Зачем?

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

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

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

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

Спасибо за прочтение, это важно для меня.

#theory

BY progway — программирование, IT




Share with your friend now:
tgoop.com/prog_way_blog/106

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. Hashtags Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu. To delete a channel with over 1,000 subscribers, you need to contact user support Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image.
from us


Telegram progway — программирование, IT
FROM American