最近從博客上看到了一個fmod函數,結果又蹦出來一個modf函數
fmod()函數:
頭文件:#include<math.h>
C庫函數。。。
fmod()用來對浮點數進行取模(求余),原型為:float fmod(float x)。
設x=k*n+h,則返回值為h(h和x的符號相同)。
fmod()與求模運算符%的比較:
1).%只用於整型的計算,后一個數不能為0;
fmod()可以對浮點型數據進行取模運算,后一個數可以為0,返回NaN(NaN,是Not a Number的縮寫,用於處理計算中出現的錯誤情況,比如 0.0 除以 0.0 或者求負數的平方根)。
2).%是運算符,fmod()是函數
double fmod(double x,double y)
返回x除以y的余數。
x是分子的浮點值,y是分母的浮點值。
示例代碼:
#include<stdio.h> #include<math.h> int main(){ double x,y,ans; while(~scanf("%lf%lf",&x,&y)){ ans=fmod(x,y); printf("%lf\n",ans); } return 0; }
9.2 2
1.200000
12.4 4
0.400000
12.4 -4
0.400000
-12.4 4
-0.400000
。。。
就這樣吧
modf()函數:
C庫函數。。。
modf()是分解x,以得到x的整數和小數部分。
double modf(double x,double *integer)
返回x的小數部分,符號與x相同。
x是浮點值,integer是指向一個對象的指針。
示例代碼:
#include<stdio.h> #include<math.h> int main(){ double x,fraction,integer; while(~scanf("%lf",&x)){ fraction=modf(x,&integer); printf("整數部分=%lf\n",integer); printf("小數部分=%lf\n",fraction); } return 0; }
9.3456
整數部分=9.000000
小數部分=0.345600
2.3476
整數部分=2.000000
小數部分=0.347600
4.545337
整數部分=4.000000
小數部分=0.545337
就這樣吧。。。