python 的内置模块中 math.modf 的 sympy 版本是什么?
What is sympy version of math.modf in python's built-in module?
当我们有一个像 123.82423992
这样的浮点数时,math.modf
像这样:
>>> math.modf(123.82423992)
>>> (0.8242399199999966, 123.0)
我需要用 sympy
做那个操作,有这个的任何 sympy
版本吗?
如果n
是正数,可以用Mod(n, 1)
和floor(n)
。
对于负数,由于 SymPy 中的 mod 和 floor(使用 Python 约定)处理负数参数的方式,您需要使用 1 - Mod(n, 1)
和 floor(n) + 1
.
您可以使用 Piecewise
.
将这些组合成单个表达式
Piecewise((Mod(n, 1), n >= 0), (1 - Mod(n, 1), n < 0))
Piecewise((floor(n), n >= 0), (1 + floor(n), n < 0))
编辑:您也可以使用 frac(n)
而不是 Mod(n, 1)
。我无法评论哪个更好。
当我们有一个像 123.82423992
这样的浮点数时,math.modf
像这样:
>>> math.modf(123.82423992)
>>> (0.8242399199999966, 123.0)
我需要用 sympy
做那个操作,有这个的任何 sympy
版本吗?
如果n
是正数,可以用Mod(n, 1)
和floor(n)
。
对于负数,由于 SymPy 中的 mod 和 floor(使用 Python 约定)处理负数参数的方式,您需要使用 1 - Mod(n, 1)
和 floor(n) + 1
.
您可以使用 Piecewise
.
Piecewise((Mod(n, 1), n >= 0), (1 - Mod(n, 1), n < 0))
Piecewise((floor(n), n >= 0), (1 + floor(n), n < 0))
编辑:您也可以使用 frac(n)
而不是 Mod(n, 1)
。我无法评论哪个更好。