舍入 sympy 表达式的一部分

rounding part of a sympy expression

我有一个包含 sin 和 cos 的 sympy 符号表达式。在代码的末尾,我使用了 lambdify((Phi),function(Phi))(phi) 但我得到了许多非零值,因为角度依赖性由几个 pi 值组成,因为 sin(pi) 没有't return 恰好为 0。如果可能的话,我想做的是在仍处于符号形式时进行舍入。类似于 sin(phi).round(5),其中 phi 只是一个符号,因此当您将表达式和 sub 代入 phi 的值时,sin 的结果会自动舍入为 5d.p。有什么办法吗?

谢谢

可以使用floor函数符号化四舍五入到小数点后5位:

In [14]: f = floor(100000*x) / 100000

In [15]: lambdify(x, f)(0.123456789)
Out[15]: 0.12345