python Decimal
存储一个基数为10的数字,可以认为它是底部10的幂的比率。
那为什么会失败?
from decimal import Decimal
from numbers import Rational
assert issubclass(Decimal, Rational)
答案 0 :(得分:2)
相同的原因float
不是Rational
:虽然float
或Decimal
的所有非无限非NaN值都是合理的,但这些类型都是为了建模实数算术。例如,它们支持平方根:
2.0**0.5
Decimal(2).sqrt()
一个用于模拟有理数或有理数子集的类不会。
(是的,好的,你可以做2**0.5
,但是将int强制转换为浮点数。)