TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.93K subscribers
Post #4600 881
Развёрнутое пояснение

1️⃣Десятичная дробь 𝟶.𝟷 в двоичной системе — это бесконечная периодическая дробь, как 𝟷/𝟹 в десятичной. Компьютер хранит только приближение.

2️⃣То же самое с 𝟶.𝟸: сохраняется не точное значение, а ближайшее представимое в формате 𝚏𝚕𝚘𝚊𝚝.

3️⃣При сложении погрешности накапливаются, и результат 𝟶.𝟷 + 𝟶.𝟸 равен примерно 𝟶.𝟹𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟶𝟺.

4️⃣Сравнение с 𝟶.𝟹 (которое тоже хранится с погрешностью, но другой) даёт False.

Почему это важно

Сравнивать 𝚏𝚕𝚘𝚊𝚝 через == почти всегда неправильно. Для денег и точных вычислений используют модуль 𝚍𝚎𝚌𝚒𝚖𝚊𝚕, для приближённых сравнений — 𝚖𝚊𝚝𝚑.𝚒𝚜𝚌𝚕𝚘𝚜𝚎(𝚊, 𝚋) или проверку 𝚊𝚋𝚜(𝚊 - 𝚋) < 𝚎𝚙𝚜𝚒𝚕𝚘𝚗.
  • ✍ 3
  • 👍 2
More from @quiz_python
  1. Sep 21, 2026Развёрнутое пояснение: 1. make_handlers создаёт пустой список handlers. 2. Цикл дважды при…
  2. Sep 21, 2026Post #4880
  3. Sep 21, 2026Развёрнутое пояснение: 1. Вызывается persist_order, и блок try печатает строку write. 2. И…
  4. Sep 21, 2026Post #4878
  5. Sep 14, 2026А вы уже забрали свой подарок ко Дню программиста? Мы в Tproger вместе с нашими друзьями с…
  6. Aug 30, 2026Развёрнутое пояснение: 1. Создаётся список batch с двумя разными словарями. 2. Вызов enric…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →