有没有办法做到这一点?例如,在下面的代码中,我失去了精度:
>>> from sympy import *
>>> from sympy.mpmath import *
>>> mp.dps = 50
>>> a = mpf('1.0')/mpf('3.0')
>>> a
mpf('0.33333333333333333333333333333333333333333333333333311')
>>> b = Float(a,50)
>>> b
0.33333333333333331482961625624739099293947219848633
答案 0 :(得分:2)
首先转换为字符串似乎可以解决问题:
>>> from sympy import *
>>> from sympy.mpmath import *
>>> mp.dps = 50
>>> a = mpf('1.0')/mpf('3.0')
>>> a
mpf('0.33333333333333333333333333333333333333333333333333311')
>>> b = Float(a,50)
>>> b
0.33333333333333331482961625624739099293947219848633
>>> b = Float(str(a),50)
>>> b
0.33333333333333333333333333333333333333333333333333
答案 1 :(得分:2)
sympify(a)
做对了。 Float(a)
也应该有效,但似乎there is a bug。