❶ C语言浮点型转换为整型怎么转换的
C语言有以下几种取整方法:
1、直接赋值给整数变量。如:
int i = 2.5; 或 i = (int) 2.5;
这种方法采用的是团森舍去小数部分,能用于你的问题。
2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数返回塌租亩值是double。整数除法对正数的取整是舍去小数型高部分,能用于你的问题。不过整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。floor函数能用于你的问题。
5、
int b = (int)a;//取整
int c = (int)(a+0.5);//四舍五入
❷ C语言中float型转换成int型是什么规则
#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 ",siz);
for(i=0;i<14;i++)
{
printf("P[intp]=%d ",floor(P[i]));//打印出P数组的每一个元素值,以int型显示
}
for(i2=0;i2<14;i2++)
{
printf("P[floatp]=%f ",P[i2]);//打印出P数组的每一个元素值,以float型显示
}
}
好像VC++6.0运行的结果只有强制转换有用,不知道是不是我写的语句有问题