1. 程式人生 > >浮點數轉化整數

浮點數轉化整數

浮點數轉化成整數,就有以下四種情況。 

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);