将小数直接抹掉的取整
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