好的,所以希望我不会因为问这个问题而看起来像个白痴……因为它很基本,但是我的大脑要么在度假,要么确实有问题。
所以-4 % 5
还是-4 mod 5
应该等于1
正确?为什么fmod
math.h库中的函数在-4
使用时会返回,即fmod(-4, 5)
返回-4
而不是1
. 我正在使用gcc compiler via cygqin
if 那也有帮助。
谢谢!
该%
运算符是余数运算符,而不是模数。该fmod
函数也是浮点余数,而不是模数。在这种情况下,他们选择将 -4/5 朝 0 舍入为整数。
POSIX状态:
#include <math.h> double fmod(double x, double y);
这些函数应返回值
x - i * y
,对于某个整数i
,如果y
不为零,则结果具有与 相同的符号x
和幅度小于 的幅度y
。
在 的情况下fmod(-4,5)
,由于结果必须具有相同的大小x
,因此它将是负数,并且i
不能小于零。如果i
为 1,则结果将大于y
,因此i
必须为零,并且 的结果-4.0
是正确的。