什么是python的内置模块中的math.modf的sympy版本?

时间:2015-10-26 14:34:46

标签: python sympy

如果我们有123.82423992这样的浮动数字,math.modf就像这样:

>>> math.modf(123.82423992)
>>> (0.8242399199999966, 123.0)

我需要使用sympy执行此操作,是否有sympy版本?

1 个答案:

答案 0 :(得分:3)

如果数字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)。我无法评论哪个更好。