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。