python - 从 mpf 转换为 Sympy Float 而不会丢失精度

标签 python sympy mpmath

有什么办法吗?例如在下面的代码中我失去了精度:

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

最佳答案

首先转换为字符串似乎可以解决问题:

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

关于python - 从 mpf 转换为 Sympy Float 而不会丢失精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37081359/

相关文章:

python - 当并非所有行都包含结束日期时,对数据框中的开始日期和结束日期进行数学计算

python - 快速评估大量输入值的数学表达式(函数)

python - 如何 mpf 一个数组?

python - 如何在 python 中有效地使用 JIT 和 mpmath/gmpy?

python - OpenShift、python 2.7 和带 htaccess 的静态文件

python - autotools:将常量从configure.ac传递到python脚本

python - UnsatisfiableError:pyqt和py-opencv发生冲突

python - 将 sympy 矩阵转换为两种形式 (sympy.diffgeom)

python - 为什么 sympyIntegrate 在对实值对数表达式进行积分时会引入虚数常数?

python - 如何在Python中生成至少20位小数的种子随机 float ?