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.floor
的 float
。 Python 3.
的行为已更改
如果求整数除法的底,可以用//
。
>>> gmpy2.mpz(123456789)//256
mpz(482253)
在 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.floor
的 float
。 Python 3.
如果求整数除法的底,可以用//
。
>>> gmpy2.mpz(123456789)//256
mpz(482253)