舍入 sympy 表达式的一部分

问题描述

我有一个包含 sin 和 cos 的 sympy 符号表达式。在代码的最后,我使用了 lamdify((Phi),function(Phi))(phi) 但由于角度依赖性由几个 pi 值组成,我得到了许多非零值,因为 sin(pi) 没有不完全返回 0。如果可能的话,我想做的是在仍为符号形式的情况下进行舍入。类似 sin(phi).round(5) 之类的东西,其中 phi 只是一个符号,因此当您对表达式进行lambdify 并为 phi 赋值时, sin 的结果会自动四舍五入为 5d.p。有什么办法吗?

谢谢

解决方法

您可以使用 floor 函数象征性地四舍五入到小数点后 5 位:

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

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