Wpis z mikrobloga

@erwit: komputery tak liczą, każdy język zwróci taki wynik, a ze względu na zapis w pamięci w postaci wykladniczej, przy dużych liczbach błąd będzie jeszcze większy
  • Odpowiedz
@erwit: Jeśli potrzebujesz dokładne obliczenia zmiennoprzecinkowe, wykorzystaj Decimal https://docs.python.org/2/library/decimal.html

Decimal numbers can be represented exactly. In contrast, numbers like 1.1 and 2.2 do not have exact representations in binary floating point. End users typically would not expect 1.1 + 2.2 to display as 3.3000000000000003 as it does with binary floating point.

Przykład:
>>> from decimal import Decimal
>>> print Decimal('1.1')
  • Odpowiedz