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
从粗略看一下小数点的文档,我发现这个模块做了一些舍入,尽管我知道它们不是。 –