求餘函式mod和fmod
阿新 • • 發佈:2019-01-03
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和%:
1) % 運算子
% 只用於整型的計算,後一個數不能是0,參與運算的資料可正可負。
2) fmod()函式
fmod()函式可以對浮點型資料進行取模運算,後一個數可為0,這時函式返回NaN。