1. 程式人生 > >求餘函式mod和fmod

求餘函式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和%:

1) % 運算子
% 只用於整型的計算,後一個數不能是0,參與運算的資料可正可負。

2) fmod()函式
fmod()函式可以對浮點型資料進行取模運算,後一個數可為0,這時函式返回NaN。