/ / Dlaczego jest dziesiętny. Obiekt dziesiętny nie jest uważany za racjonalny? - python, dziesiętny, liczba wymierna

Dlaczego dziesiętny. Obiekt dziesiętny nie jest racjonalny? - python, dziesiętny, numer racjonalny

Python Decimal przechowuje numer bazy 10, który można traktować jako stosunek o mocy 10 na dole.

Dlaczego więc to się nie udaje?

from decimal import Decimal
from numbers import Rational

assert issubclass(Decimal, Rational)

Odpowiedzi:

2 dla odpowiedzi № 1

Ten sam powód float nie jest Rational: podczas gdy wszystkie nieskończone, nie-NaN wartości float lub Decimal są racjonalne, typy są przeznaczone do modelowania arytmetyki liczb rzeczywistych. Na przykład obsługują pierwiastki kwadratowe:

2.0**0.5
Decimal(2).sqrt()

których klasa przeznaczona do modelowania liczb wymiernych lub podzbioru wymierników nie.

(Tak, dobrze, możesz to zrobić 2**0.5, ale to zmusza int do float.)