C语言中float型转换成int型是什么规则

2024-11-07 23:29:43
推荐回答(5个)
回答(1):

#include

//#include

int main()

{

int i;

int i2;

int siz;

float P[14]={0,1,2,3,1,1,5,1,2.3,6.1,500,130,5,0};

siz=sizeof(P);//打印出数组P的字节数

printf("sizeof=%d\r\n",siz);

for(i=0;i<14;i++)

{

printf("P[intp]=%d\r\n",floor(P[i]));//打印出P数组的每一个元素值,以int型显示

}

for(i2=0;i2<14;i2++)

{

printf("P[floatp]=%f\r\n",P[i2]);//打印出P数组的每一个元素值,以float型显示

}

}

#include

#include

int main()

{

int i;

int i2;

int siz;

float P[14]={0,1,2,3,1,1,5,1,2.3,6.1,500,130,5,0};

siz=sizeof(P);//打印出数组P的字节数

printf("sizeof=%d\r\n",siz);

for(i=0;i<14;i++)

{

printf("P[intp]=%d\r\n",floor(P[i]));//打印出P数组的每一个元素值,以int型显示

}

for(i2=0;i2<14;i2++)

{

printf("P[floatp]=%f\r\n",P[i2]);//打印出P数组的每一个元素值,以float型显示

}

}

好像VC++6.0运行的结果只有强制转换有用,不知道是不是我写的语句有问题

回答(2):

1、C语言整型使用原码、反码、补码进行编码,而浮点型使用IEEE754进行编码,所以强制转换基本上是没有任何意思的,因为编码格式不一样。

2、正确的作法是使用c语言标准库中的floor和ceil函数来进行向下或者向上取整。比如:

#include 
#include 
int main()
{    
    double d = 1.1;
    int up = ceil(d);
    int down = floor(d);
    printf("up=%d\tdown=%d\n", up, down);
    return 0;
}
//结果:up=2 down=1

回答(3):

C中浮点型转为整型,直接截取小数部分,把整数部分作为结果。不必关心存储细节

回答(4):

可以通过强制转换类型.例如 float x=3.555;
int i;
i=(int)x;
printf("i=%d",i);

回答(5):

直接截取浮点数的整数部分