四舍五入,向下取整,向上取整的使用

C语言中的四舍五入以及向下取整和向上取整
四舍五入,向下取整,向上取整的使用_第1张图片

这是一道常见的收话费问题
思路很简单,首先就是判断它打电话的时间是否大于3分钟,也就是先判断他的收费是否大于0.5,若是大于0.5,则对多出的部分除以0.2。
在这里主要是想说两个函数,floor和ceil,使用它们是需要引入头文件
1.floor
四舍五入,向下取整,向上取整的使用_第2张图片
floor函数是取小于或等于它的最大整数
使用方法 double floor(x);默认类型为double,有六位小数,但也可以转化为低精度的数值
如int i= floor(x);
但是由高精度转为低精度时会损失精度。
2.ceil
四舍五入,向下取整,向上取整的使用_第3张图片
即它会返回一个大于或等于它的最小整数,
使用方法 double ceil(x);
也是double类型的,默认有6位小数,也可以对其进行强制转换
int i = ceil(x);
在我们解决上面这个例题时就可以使用,因为它所要求的通话时长都为整数。
3.round
四舍五入,向下取整,向上取整的使用_第4张图片
返回类型跟上面两个函数一样,也为double类型的
使用方法 double round(x);
但在使用时我们也可以对其进行转换
int i = round(x);
但会损失精度。
这在小学我们就讲过什么时候使用进一(ceil),什么时候使用退一(floor),什么时候使用四舍五入(round),大家自行判断。
如有不正确的地方,欢迎随时指出来。
#include
#include
int main(void)
{
float i,a;
int b,c=3;
scanf("%f",&i);
if(i==0.5)
{
c=3;
}
else
{
a=3+(i-0.5)/0.2;
c=ceil(a);
}

	printf("%d",c);
return 0;

}
例题的代码,供参考。

你可能感兴趣的:(C语言常见函数)