我一直在尝试创建一个可以与 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表达式作为结果?
我也遇到同样的问题。我正在开发高精度代码来显示非常小的函数图。我仍然没有在网上找到任何帮助。