hygiy: (Default)
[personal profile] hygiy
Помнится, в своё время долго искал ошибку. А оно вона как...
Гугление ничего особо не дало. Возможно даже, я первый это открыл?

Date: 2025-12-29 10:05 pm (UTC)
From: [personal profile] sig_11
Этой "фиче" больше лет, чем мне. Возведение 2 в степень 2 на калькуляторе МК-64 в 1985 году - давало 3.99999999999 :)
Вместо int() для чисел с плавающей запятой следует использовать округление до нужного Вам числа знаков.

Date: 2025-12-29 10:18 pm (UTC)
From: [personal profile] sig_11
Числа типа float хранятся не в десятичной системе. Большинство десятичных дробей не представимы точно в двоичном виде, поэтому Python хранит ближайшее двоичное число.
18.56 в памяти на самом деле немного меньше 18.56 → после умножения на 100 получается 1855.9999999999998, а вывод просто показывает реальное значение.
18.55 и 18.57 случайно попадают в область, которая после умножения округляется ровно до целого — поэтому там «красиво».

February 2026

S M T W T F S
1234 56 7
891011 12 1314
15161718192021
22232425262728

Most Popular Tags

Page generated Feb. 13th, 2026 06:06 pm
Powered by Dreamwidth Studios