浮点数转化整数

浮点数转化成整数,就有以下四种情况。 

1.直接转化

#include

int main()
{
    float f = 1.5;
    int a;
    a=(int)f;
    printf("a=%d",a);
    return 0;
}

输出结果是1。(int)是强制类型转化,丢弃浮点数的小数部分。

 

2.高斯函数,向下取整

#include

int main()
{
    double f = 1.5;
    int a;
    a=floor(f);
    printf("a=%d",a);
    return 0;
}


输出结果是1。floor()方法是向下取整,类似于数学中的高斯函数 [].取得不大于浮点数的最大整数,对于正数来说是舍弃浮点数部分,对于复数来说,舍弃浮点数部分后再减1。

 

3.ceil函数,向上取整

#include

int main()
{
    double f = 1.5;
    int a;
    a=ceil(f);
    printf("a=%d",a);
    return 0;
}

输出结果是2。ceil()方法是向上取整,取得不小于浮点数的最小整数,对于正数来说是舍弃浮点数部分并加1,对于复数来说就是舍弃浮点数部分。

 

4.通过强制类型转换四舍五入

#include

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

fabs() 函数用来求浮点数的绝对值。在TC中原型为:
    float fabs(float x);
在VC6.0中原型为:
    double fabs( double x ); 求绝对值函数

 

整型

头文件:#include

定义函数:int abs (int j);

 

你可能感兴趣的:(#,C语言算法,数据结构)