Округлить все числа в объекте sympy - PullRequest
0 голосов
/ 23 мая 2019

У меня есть класс 'sympy.core.add.Add' объекта, который я хотел бы округлить до всех цифр в этом объекте до 2 цифр.

Дано:

2,96652814643838 * sin (x) + 3.11758737898895 * sin (2 * x)

Желаемая:

2,97 * грех (х) + 3,12 * грех (2 * х)

Есть идеи, как это сделать?

1 Ответ

1 голос
/ 23 мая 2019

Несмотря на то, что nfloat преобразует все числа в желаемое количество значащих цифр, в выражении глобально не округлить числа. Но expr.xreplace(Transform(lambda x: x.round(2), lambda x: isinstance(x, Float))) будет работать.

>>> expr = 2.96652814643838*sin(x) + 3.11758737898895*sin(2*x)
>>> from sympy.core.rules import Transform
>>> expr.xreplace(Transform(lambda x: x.round(2), lambda x: isinstance(x, Float)))
2.97*sin(x) + 3.12*sin(2*x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...