Кто-нибудь, пожалуйста, объясните мне это?
Я писал def (программу) для преобразования текста в числа и хотел убедиться, что это были только целые числа, представление было целым, а если плавающее, то плавающим. Если смесь, по умолчанию используется плавающий режим. Тестирование на суммировании дало интересные вещи. По мере того, как я тестировал больше, он становился еще более странным.
Если бы это всегда было одно из двух, возможно, я мог бы обратиться, но, насколько я понимаю, это непоследовательно. Я слышал, что это вызывает беспокойство, и существуют библиотеки, которые обращаются к желаемому состоянию (десятичные типы), но почему это происходит? Меня это беспокоит. Должна ли я быть?
Примеры ниже варьируются от «да, это имеет смысл» до «а?» на "как в ???". И это происходит в пределах числа в непосредственной близости. Я имею в виду, когда это 5,8 против 6,8, и вы получаете эту дельту в результате. WT ???
TIA для любых идей. Я уверен, что это где-то старые новости :)
Все запускаются из командной строки, хотя из кода то же самое. Использование Python 3.8.2 Некоторые примеры:
-2 + 4,5 => 2,5 "да, это имеет смысл"
-6,8 + 8 => 1.2000000000000002 "да?"
-2 + 3,8 => 1,7999999999999998 «как в ???»
-5,8 + 8 => 2,2
-7,8 + 8 => 0.20000000000000018
-8,8 + 8 => -0,8000000000000007
-4,8 + 8 => 3,2
-4-3,8 + 8 => 0.20000000000000018
-4 + 3,8 => -0.20000000000000018
-3 + 3,8 => 0,7999999999999998
-1 + 3,8 => 2,8