浮點數轉化整數
阿新 • • 發佈:2018-12-02
浮點數轉化成整數,就有以下四種情況。
1.直接轉化
#include<stdio.h>
int main()
{
float f = 1.5;
int a;
a=(int)f;
printf("a=%d",a);
return 0;
}
輸出結果是1。(int)是強制型別轉化,丟棄浮點數的小數部分。
2.高斯函式,向下取整
#include<stdio.h> int main() { double f = 1.5; int a; a=floor(f); printf("a=%d",a); return 0; }
輸出結果是1。floor()方法是向下取整,類似於數學中的高斯函式 [].取得不大於浮點數的最大整數,對於正數來說是捨棄浮點數部分,對於複數來說,捨棄浮點數部分後再減1。
3.ceil函式,向上取整
#include<stdio.h>
int main()
{
double f = 1.5;
int a;
a=ceil(f);
printf("a=%d",a);
return 0;
}
輸出結果是2。ceil()方法是向上取整,取得不小於浮點數的最小整數,對於正數來說是捨棄浮點數部分並加1,對於複數來說就是捨棄浮點數部分。
4.通過強制型別轉換四捨五入
#include<stdio.h>
int main()
{
double f = 1.5;
int a;
a=(int)(f+0.5);
printf("a=%d",a);
return 0;
}
這三個方法容易混淆:
Math.round:如果引數是小數,則求本身的四捨五入。
Math.ceil:如果引數是小數,則求最小的整數但不小於本身。
Math.floor:如果引數是小數,則求最大的整數但不大於本身。
同時注意他們的返回型別:
long round(double a)
int round(float a)
double ceil(double a)
double floor(double a)
求絕對值函式
浮點型
標頭檔案:#include <math.h>
fabs() 函式用來求浮點數的絕對值。在TC中原型為:
float fabs(float x);
在VC6.0中原型為:
double fabs( double x ); 求絕對值函式
整型
標頭檔案:#include <stdlib.h>
定義函式:int abs (int j);