Если я введу следующее в оболочку Python 2.7.1 или в оболочку 3.3.2:
a = 0.1
b = 0.1
(a + b) == 0.2
он возвращает значение true
. Из stackoverflow и видео из Массачусетского технологического института у меня сложилось впечатление, что это вернет false
, так как есть небольшие ошибки при попытке точно представить 0.1 в компе. (В конце концов, разве это не двоичный код?) Поэтому я думаю, что Python должен либо а) выполнять арифметику с плавающей запятой, либо б) округлять перед выполнением теста на равенство.
Что это такое и какие версии Python имеют такое поведение?
0.1 + 0.2 == 0.3
. Ошибки не должны возникать всегда. - person BartoszKP   schedule 29.12.2013