C++知识精讲12——取整方式及实战讲解【全网最详细取整“集合”】

作者:Yu仙笙真滴卷😎

专栏:C++知识精讲🏀

文章简介:

本文我们来讲C++知识精讲的第13篇,取整方式及实战讲解,此专栏会讲许多,各种各样的类型,如果喜欢此专栏请订阅持续关注,感谢大家的支持。接下来,进入今天的知识精讲。 

强烈建议点赞收藏起来,干货太多,以免以后找不到!😘

真的全网最详细!!!😎

这是作者的得意之作,啊哈哈哈🤣

目录

取整方式 

First·向0取整

含义:

用法:

代码实现示例:

trunc函数使用的头文件 

trunc函数基本用法

代码实现示例 :

 Second·四舍五入

含义:

用法: 

round函数用的头文件

round函数基本用法

代码实现示例:

Third·向下取整 

含义:

用法: 

floor函数用的头文件 

floor函数基本用法

冷知识:

代码实现示例 :

实战导入:

算法分析:

代码实现:

输出结果:

​编辑Fourth·向上取整 

含义:

用法: 

ceil函数用的头文件

ceil函数基本用法

代码实现示例 :

实战导入 :

算法分析: 

代码实现 :

输出结果:

取整方式集合:

小结 


取整方式 

取整方式总共可以分为4种:

种数种类
1.向0取整(trunc函数)
2.四舍五入(round函数)
3.向下取整(floor函数)
4.向上取整(ceil函数)

本文章就按照这个顺序依次展开说明,并用例题详细分析

First·向0取整

含义:

向零取整即直接抹掉小数点后面的数字,取整数部分,C++默认的取整方式。(参考下面输出理解)

用法:

用法可以分为两种:

1.将float数据类型直接转换为int类型,小数将直接采用向0取整的方式

代码实现示例:

#include<iostream>
using namespace std;
int main()
{
	float a;
	int b;
	cin>>a;
	b=(int)a;
	cout<<"2.5的向下取整的数为"<<b;
	return 0;
}

 看输出结果,将2.5的小数部分0.5直接抹掉,转换为2输出,这就是C++默认的向0取整方式

2.使用trunc函数实现向0取整

trunc函数使用的头文件 

#include<cmath>

trunc函数基本用法

trunc(向0取整的数)//括号内可以添加变量进行运算

代码实现示例 :

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	printf("2.5的向0取整的数为%.1lf\n",trunc(2.5));
	return 0;
}

看结果也是实现的向0取整,说明使用trunc函数也是可以实现向0取整的。

 Second·四舍五入

含义:

小数点后一位的数字>=0.1并且<=0.4的数抹掉小数所有位,小数点后一位的数字>=0.5并且<=0.9的数向上进一位(参考下面输出理解)

用法: 

使用round函数进行四舍五入运算

round函数用的头文件

#include<cmath>

round函数基本用法

round(需要四舍五入的数)//括号内可以添加变量进行运算 

代码实现示例:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	printf("2.444的四舍五入的数为%.1lf\n", round(2.444));
	printf("2.555的四舍五入的数为%.1lf\n", round(2.555));
	return 0;
}

看输出结果看到了整数2的小数部分<=4磨掉了小数所有位数;>=5的向上进一位

Third·向下取整 

含义:

不判断小数位,正数抹掉小数位,负数向下退一位即为向下取整(参考下面的输出理解)

用法: 

使用floor函数进行向下取整运算

floor函数用的头文件 

#include<cmath>

floor函数基本用法

floor(需要向下取整的数)//括号内可以添加变量进行运算 

冷知识:

总是忘记向下取整函数怎么拼写怎么办呢?相信很多英语学的很好的读者们已经发现了,向下取整函数(floor)放在英语里面就是——地板、地面的意思。所以啊,向下取整函数(floor)我们通常亲切的称他为——地板取整,是不是这下就好记多啦!😁

代码实现示例 :

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	printf("2.9的向下取整的数为%.1lf\n", floor(2.9));
	printf("-2.5的向下取整的数为%.1lf\n", floor(-2.5));
	return 0;
}

看输出结果,可以明显的看到向下取整的效果了 ,那么来实战试试吧!

实战导入:

东北串王是家老店了,烧烤炒菜都很666666,尤其是夏天顾客络绎不绝,露天的位置都抢不到啊抢不到!最近店里遇到个问题:客人多,点的串也太多,服务员老是记错帐,搞得客人不开心。老板很着急,再这样下去就被传成“海捕大虾38元一只”的店啦!

店里有个聪明的小伙计给出了个主意:串串子用不同的签子,一种签子一个价,最后数数总数就成啦!现在店里有三种签子:红柳签五元每串、铁签一块五每串、竹签五毛每串。你和朋友大吃大喝了一通,该结账啦!(讨价还价时老板说,多出的几毛钱可以免掉,真抠!)

输入:

三个整数t1,t2和t3,分别表示红柳签、铁签和竹签的数量。

输出:

一个整数,表示花的钱数。

样例输入:

10 10 11

样例输出:

70

算法分析:

多的几毛钱去掉,就是向下取整的一种方式,可以直接用向下取整实现。 

代码实现:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int rq,rqy;//定义红签数和红签计数,整数形式
	float tq,zq,sum;//定义铁签竹签数和计数变量,浮点形式
	cin>>rq>>tq>>zq;//输入
	rqy=rq*5;//计算红签钱数
	sum=tq*1.5+zq*0.5;//计算铁签竹签钱数,小数
	sum+=rqy;//把三个签子钱数相加求总和
	cout<<floor(sum);//题目要求免掉小数点后面的,就是向下取整
	return 0;
}

输出结果:


Fourth·向上取整 

含义:

不判断小数位,正数向上进一位,负数向上进一位即为向上取整(参考下面的输出理解)

用法: 

使用ceil函数进行向上取整运算

ceil函数用的头文件

#include<cmath>

ceil函数基本用法

ceil(需要向上取整的数)//括号内可以添加变量进行运算 

代码实现示例 :

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	printf("2.1的向上取整的数为%.1lf\n", ceil(2.1));
	printf("-2.5的向上取整的数为%.1lf\n", ceil(-2.5));
	return 0;
}

看输出结果发现,他正好和向下取整反过来了,这就实现了向上取整,那就让我们实战试一下吧! 

实战导入 :

描述

根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

输入

输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。

输出

输出一行,包含一个整数,表示邮费。

输入样例 1 

800 n

输出样例 1

8

算法分析: 

这一个代码要运用的我们刚刚学习的向上取整,仔细读题,题目要求不足500克部分按500克计算,笨办法是用if一一列出来,妙的代码直接用向上取证代替多个if,简直香香。

代码实现 :

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int a,sum;
	char b;
	cin>>a>>b;
	if (a>1000)
	{
		sum=ceil(1.0*(a-1000)/500)*4+8;//运用向上取整计算
	}
	else
	{
		sum=8;
	}
	if (b=='y')
	{
		sum+=5;
	}
//另一个if可以不用判断,因为不加急等同于原来的sum
	cout<<sum;
	return 0;
}

输出结果:

这一篇文章就要结束了,在这里,作者给大家添加了,取整方式集合,供大家做好对比 

取整方式集合:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	printf("2.5的向0取整的数为%.1lf\n", trunc(2.5));//向0取整
	printf("2.444的四舍五入的数为%.1lf\n", round(2.444));//四舍五入
	printf("2.555的四舍五入的数为%.1lf\n", round(2.555));
	printf("2.9的向下取整的数为%.1lf\n", floor(2.9));//向下取整
	printf("-2.5的向下取整的数为%.1lf\n", floor(-2.5));
	printf("2.1的向上取整的数为%.1lf\n", ceil(2.1));//向上取整
	printf("-2.5的向上取整的数为%.1lf\n", ceil(-2.5));
	return 0;
}

小结 

这就是取整方式及实战讲解【全网最详细取整“集合”】,把知识点带入实战,如有疑问,请在评论区留言,作者看到后,会一一回复的。

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.LAL.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值