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

C语言中的四舍五入以及向下取整和向上取整
在这里插入图片描述

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

}
例题的代码,供参考。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值