GMPY2 - 如何避免 gmpy2.floor() 返回 mpfr 而不是 mpz?

GMPY2 - How to avoid gmpy2.floor() returning mpfr instead of mpz?

mpz 变量上使用 gmpy2.floor() 后:

 x = mpz(5)
 x = gmpy2.floor(x/256)

x 的类型是 mpfr 而不是 mpz,尽管据我了解,floor 总是 returns 整数。

我怎样才能避免这种情况?

恐怕使用 x = mpz(gmpy2.floor(x/256)) 会降低性能,是吗?

gmpy2 包装了 MPFR 库,它 returns 一个 mpfr 作为结果类型。

http://www.mpfr.org/mpfr-current/mpfr.html#Integer-Related-Functions

仅供参考,Python 2.x returns 来自 math.floorfloat。 Python 3.

的行为已更改

如果求整数除法的底,可以用//

>>> gmpy2.mpz(123456789)//256
mpz(482253)