Return fmod(x, y), as defined by the platform C
library. Note that the Python expression x % y may not return the same
result. The intent of the C standard is that fmod(x, y) be exactly
(mathematically; to infinite precision) equal to x - n*y for some
integer n such that the result has the same sign as x and magnitude
less than abs(y). Python’s x % y returns a result with the sign of y
instead, and may not be exactly computable for float arguments. For
example, fmod(-1e-100, 1e100) is -1e-100, but the result of Python’s
-1e-100 % 1e100 is 1e100-1e-100, which cannot be represented exactly as a float, and rounds to the surprising 1e100. For this reason,
function fmod() is generally preferred when working with floats, while
Python’s x % y is preferred when working with integers.
和你对普通模的期望一样。。e、 g.
7 % 4 = 3
,7.3 % 4.0 = 3.3
注意浮点精度问题。
除了其他答案外,^{} documentation 还有一些有趣的话题要说:
当你有这个表达式时:
它实际上意味着存在一个整数
n
,使得c
尽可能小,但不是负的。用手,你可以一遍又一遍地减去
2
(如果你的数字是负数,也可以加上2
),直到最终的结果是可能的最小正数:此外,
3.14 % 2 * pi
被解释为(3.14 % 2) * pi
。我不确定你是否打算写3.14 % (2 * pi)
(在这两种情况下,算法都是一样的)。只需减/加,直到数字越小越好)。相关问题 更多 >
编程相关推荐