3

有没有办法做到这一点?例如在下面的代码中,我失去了精度:

>>> 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
4

2 回答 2

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
于 2016-05-06T21:03:37.430 回答
2

sympify(a)做正确的事。Float(a)应该也可以,但似乎有一个错误

于 2016-05-09T17:30:57.307 回答