将小数直接抹掉的取整
1自动类型转换
例如 :
#include <stdio.h>
main()
{
int a;
a=2.7;
printf("a = %d",a);
} // a = 2
2强制类型转换
例如:
#include <stdio.h>
main()
{
printf("%d",(int)3.75); //输出结果为 3
}
四舍五入取整
强转实现四舍五入
#include <stdio.h>
main()
{
int a ,b;
a = (int)(3.2+0.5);
b = (int)(5.6+0.5);
printf("a=%d,b=%d",a,b);
//a=3,b=6
}
(int)(3.2+0.5)=(int)3.7=3
(int)(5.6+0.5)=(int)6.1=6
其它取整方法
ceil函数
ceil(x)返回的大于等于x的最小整数
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int a,b,c,d;
a = ceil(1.7);
b = ceil(2.3);
c = ceil(-2.3);
d = ceil(8.0);
printf("a = %d,b = %d,c = %d,d = %d",a,b,c,d);
}
floor 取出小于等于x的最大整数
floor()和ceil()函数均在math.h头文件中定义
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int a,b,c,d;
a = floor(1.7);
b = floor(2.3);
c = floor(-2.3);
d = floor(8.0);
printf("a = %d,b = %d,c = %d,d = %d",a,b,c,d);
}
强制类型转换,效果不一定等同于floor函数例如(int)-2.3=-2而floor(-2.3)=-3