0

好的,所以希望我不会因为问这个问题而看起来像个白痴……因为它很基本,但是我的大脑要么在度假,要么确实有问题。

所以-4 % 5还是-4 mod 5应该等于1正确?为什么fmodmath.h库中的函数在-4使用时会返回,即fmod(-4, 5)返回-4而不是1. 我正在使用gcc compiler via cygqinif 那也有帮助。

谢谢!

4

2 回答 2

4

%运算符是余数运算符,而不是模数。该fmod函数也是浮点余数,而不是模数。在这种情况下,他们选择将 -4/5 朝 0 舍入为整数。

于 2013-05-28T01:27:16.737 回答
1

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是正确的。

于 2013-05-28T02:13:59.660 回答