0.1 + 0.1 + 0.1 - 0.3 == 5.551115123125783e-17 Jest to wynik bardzo bliski zeru (nie zero!) ale końcowy użytkownik nie takiego rezultatu by oczekiwał, więc jak to "naprawić"? Otóż jest taki moduł jak decimal:
from decimal import Decimal print(Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')) # 0.0 Ale warto zwrócić tutaj uwagę na:
@hamskloss: Ale całym clue mojej wypowiedzi był oto, że nie jest to żadna ciekawostka tylko absolutna podstawa pythona... ( ͡°ʖ̯͡°) Podaję kolejne potencjalne ciekawostki: 2 * True + False
a = float(0.1) b = float(0.1) In [3]: a is b Out[3]: False In [4]: a == b Out[4]: True
Od dawna wiadomo ( ͡° ͜ʖ ͡°), że:
0.1 + 0.1 + 0.1 - 0.3 == 5.551115123125783e-17
Jest to wynik bardzo bliski zeru (nie zero!) ale końcowy użytkownik nie takiego rezultatu by oczekiwał, więc jak to "naprawić"?
Otóż jest taki moduł jak decimal:
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3'))
# 0.0
Ale warto zwrócić tutaj uwagę na:
from decimal import
Podaję kolejne potencjalne ciekawostki:
2 * True + False
a = float(0.1)
b = float(0.1)
In [3]: a is b
Out[3]: False
In [4]: a == b
Out[4]: True
[] = () = {}