求余函数mod和fmod

1 使用格式相同

double z = mod(double x, double y); x是数,y是模值

double z = fmod(double x, double y); x是数,y是模值

2 不同作用:

mod是matlab中的函数,z与y同符号;y为0时返回x

fmod是c++中的函数,z与x同符号;y为0时返回NAN

3 测试如下:

//  x      y    z1            z2                z1  z2
    x = 10;y=3;z1 = fmod(x,y);z2 = mod(x,y); // 1   1
    x = 10;y=-3;z1 = fmod(x,y);z2 = mod(x,y);// 1   -2
    x = -10;y=3;z1 = fmod(x,y);z2 = mod(x,y); // -1  2
    x = -10;y=-3;z1 = fmod(x,y);z2 = mod(x,y);// -1 -1
    x = 10;y=0;z1 = fmod(x,y);z2 = mod(x,y); // -nan 10
    x = 0;y=0;z1 = fmod(x,y);z2 = mod(x,y);  // -nan 0
    x = -10;y=0;z1 = fmod(x,y);z2 = mod(x,y);// -nan -10

4 另外关于c++中的fmod和%:

参考:https://blog.csdn.net/csdn_liuzongyi/article/details/53501589

1) % 运算符
% 只用于整型的计算,后一个数不能是0,参与运算的数据可正可负。

2) fmod()函数
fmod()函数可以对浮点型数据进行取模运算,后一个数可为0,这时函数返回NaN。

猜你喜欢

转载自blog.csdn.net/lzp_k2/article/details/83415356