1

pythonDecimal存储一个以 10 为底的数字,可以将其视为底部的 10 次方的比率。

那么为什么会失败呢?

from decimal import Decimal
from numbers import Rational

assert issubclass(Decimal, Rational)
4

1 回答 1

2

同样的原因float不是:虽然or的Rational所有非无限、非 NaN 值都是有理数,但这些类型旨在模拟实数算术。例如,它们支持平方根:floatDecimal

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

旨在模拟有理数或有理数子集的类不会。

(是的,好吧,你可以这样做2**0.5,但这会将 int 强制为浮点数。)

于 2017-03-16T00:06:22.997 回答