来自http://docs.python.org/2/library/math.html:
数学.freexp(x)
将 x 的尾数和指数作为 (m, e) 对返回。m 是一个浮点数,e 是一个整数,使得 x == m * 2**e 精确。如果 x 为零,则返回 (0.0, 0),否则返回 0.5 <= abs(m) < 1。这用于以可移植的方式“分离”浮点数的内部表示。
数学.modf(x)
返回 x 的小数和整数部分。两个结果都带有 x 的符号并且是 floats。
在这个相关的问题中,指出返回浮点数对 ceil 和 floor 没有真正意义,因此在 Python 3 中,它们被更改为返回整数。是否有一些原因导致的整数结果modf
也没有作为整数返回?在 Python 2.7 中:
In [2]: math.floor(5.5)
Out[2]: 5.0
In [3]: math.modf(5.5)
Out[3]: (0.5, 5.0)
In [4]: math.frexp(5.5)
Out[4]: (0.6875, 3)
在 Python 3 中:
In [2]: math.floor(5.5)
Out[2]: 5
In [3]: math.modf(5.5)
Out[3]: (0.5, 5.0)
In [4]: math.frexp(5.5)
Out[4]: (0.6875, 3)