取整和四舍五入
在目前为遇到很多的题目中,都提到了四舍五入,但是就目前学习中所有四舍五入问题基本用保留小数点后若干位处理由系统自己处理,但是没有相对的函数吗,能保证系统的处理符合实际要求吗?查阅资料,获得以下:
一.直接抹去小数
1编译器自动转化类型
2.强制类型转换
对于编译器自动转化及强制类型转换,将会把小数的小数位去除,那么当我们需要四舍五入时,我们可以这样做:
# include <stdio.h>
int main()
{
int y;
double a;
a = 3.73;
y = (int)(a+0.5);
//or
//a = (int)(3.73);
printf("%d",y); //a=4;
return 0;
}
二.利用函数取整
1.ceil函数
作用:ceil(x)返回的大于等于x的最小整数
2.floor函数
作用:floor 取出小于等于x的最大整数
1.真正能起到四舍五入作用的还是要在小数原样同时加上0.5后进行强制类型转换.
2.对于floor函数其作用即等同于数学里的取整函数【x】;即向左取整,注意ceil函数(向右取整)区分,同时在调用floor和ceil函数是要使用数据库<math.h>.
3对于编译器的主动数据类型转换即直接类型转换其实质就是去除小数输出整数部分。