#include<stdio.h>
//#include<math.h>
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<stdio.h>
#include<math.h>
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运行的结果只有强制转换有用,不知道是不是我写的语句有问题
1、C语言整型使用原码、反码、补码进行编码,而浮点型使用IEEE754进行编码,所以强制转换基本上是没有任何意思的,因为编码格式不一样。
2、正确的作法是使用c语言标准库中的floor和ceil函数来进行向下或者向上取整。比如: