使用decimal.Decimal 与 sympy

问题描述 投票:0回答:1

我一直在尝试创建一个可以与 sympy 表达式中的 Decimal 类一起使用的函数。我尝试过使用 sympy.utilities.labdify:

x = sympy.symbols('x')
expr = sympy.Float('2.3') * x  # same with Decimal('2.3') * x
f = sympy.utilities.lambdify(x, expr)
f(Decimal('1'))

此代码引发 TypeError: unsupported operand type(s) for *: 'float' and 'decimal.Decimal'。
我尝试更改lambdaify中的模块没有成功:

x = sympy.symbols('x')
expr = sympy.Float('2.3') * x  # same with Decimal('2.3') * x
my_modules = [{'float': Decimal, 'sympy.core.numbers.Float': Decimal, 'Float': Decimal}, 'numpy']
f = sympy.utilities.lambdify(x, expr, modules=my_modules)
f(Decimal('1'))  # Same error

是否可以解决这个问题并用decimal.Decimal类计算sympy表达式作为结果?

python decimal sympy
1个回答
0
投票

我也遇到同样的问题。我正在开发高精度代码来显示非常小的函数图。我仍然没有在网上找到任何帮助。

© www.soinside.com 2019 - 2024. All rights reserved.