1
python Decimal
存儲一個基數爲10的數字,這個數字可以被認爲是底部10的冪乘的比率。爲什麼decimal.Decimal對象不被認爲是合理的?
那麼爲什麼這會失敗呢?
from decimal import Decimal
from numbers import Rational
assert issubclass(Decimal, Rational)
python Decimal
存儲一個基數爲10的數字,這個數字可以被認爲是底部10的冪乘的比率。爲什麼decimal.Decimal對象不被認爲是合理的?
那麼爲什麼這會失敗呢?
from decimal import Decimal
from numbers import Rational
assert issubclass(Decimal, Rational)
同樣的原因float
不Rational
:而float
或Decimal
所有非無限,非NaN值是合理的,該類型是要模擬現實數算術運算。例如,它們支持平方根:
2.0**0.5
Decimal(2).sqrt()
哪個類用於對有理數或有理數子集進行建模。
(是的,沒關係,你可以做2**0.5
,而是把int強制爲float。)因爲`Decimal`不是Rational`的`子類
對,我的錯誤是混淆了「存儲理性數量」和「只支持理性操作」 – Eric
'assert'失敗。爲什麼它不是'Rational'的一個子類是一個不同的問題。 – DyZ
從粗略看一下小數點的文檔,我發現這個模塊做了一些舍入,儘管我知道它們不是。 –