Pisząc kod, przyszedłem do trudnej sytuacji, mam float 2.467, ale potrzebuję 2.4 tylko nie 2.5

Kiedy używam funkcji Roud (), daje 2.5

Pomóż mi z kodem, jak uzyskać 2,4 od 2.47

0
Aswin Venu 18 sierpień 2014, 18:59

2 odpowiedzi

Najlepsza odpowiedź
>>> int(2.467 * 10) / 10.0
2.4
>>> int(2.47 * 10) / 10.0
2.4
3
falsetru 18 sierpień 2014, 15:03

Użyj takiej jak moduł "dziesiętny":

>>> from decimal import Decimal
>>> from decimal import ROUND_FLOOR
>>> from decimal import getcontext

>>> getcontext().rounding = ROUND_FLOOR
>>> getcontext().prec = 2
>>> float(Decimal.from_float(2.467).quantize(Decimal('1.0')))
2.4

Dokumentacja: https://docs.Python.org/2/library/decimal.html.

0
Quentin THEURET 18 sierpień 2014, 15:48