题目描述
任意给出一个小数,编程求不小于它的最小整数与不大于它的最大整数。
即求出这个小数往下取整与往上取整的值。
输入描述:
输入一行,包含一个浮点数a
输出描述:
输出两行,第一行表示a往下取整,第二行表示a往上取整。
示例1
输入
3.5
输出
3
4
备注:ceil(x)函数返回大于等于x的最小double类型整数
例如:ceil(3.8)返回4.0
方法一:直接用强制类型转换运算符
#include<iostream>
using namespace std;
int main()
{
double n;
cin>>n;
if((int)n==n)
cout<<(int)n<<endl<<(int)n<<endl;
else
{
cout<<(int)n<<endl;
cout<<(int)(n+1)<<endl;
}
return 0;
}
方法二:根据提示ceil函数用法+强制类型转换运算符
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n;
cin>>n;
cout<<int(n)<<endl;
cout<<ceil(n)<<endl;
return 0;
}
方法三:函数取整·ceil函数、floor函数
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double num;
cin>>num;
int floor_num=floor(num);
int ceil_num=ceil(num);
cout<<floor(num)<<endl;
cout<<ceil(num)<<endl;
return 0;
}
【强制类型转换运算符解析】
(double)a ---> 将a转换成 double型
(int)(x+y) ---> 将x+y的值转换成 int型
(float)(5%3) ---> 将5%3的值转换成float型
其一般形式为:
(类型名)(表达式)
注意,表达式应该用括号括起来,如果写成
(int)x+y
则只将x转换成整型,然后与y相加。
需要说明的是,在强制类型转换时,得到一个所需类型的中间数据,而原来变量的类型未发生变化。例如:
a=(int)x
如果已定义x为float型变量,a为整型变量,进行强制类型运算(int)x后得到一个int 类型的临时值,它的值等于x的整数部分,把它赋给a,注意x的值和类型都未发生变化,仍为float型。该临时值在赋值之后就不再存在了。
【函数解析】
涉及函数:ceil函数、floor函数
补充相关函数:round函数
需另加的头文件:#include<math.h>
ceil函数:在英文中,是天花板的意思,也有向上的意思。
所以,此函数是向上取整。它返回的是大于或等于函数参数,并且与之最接近的整数。
规律:
向上取整的时候,正数,则直接将当前整数+1;ceil(1.3)=2.0
负数,则取其整数部位,抹掉小数部位;ceil(-1.3)=-1.0
整数,则不变。ceil(1.0)=1.0
floor函数:在英文中,是地面地板的意思,也有下面的意思。
所以,此函数是向下取整。它返回的是小于或等于函数参数,并且与之最接近的整数。
规律:
向下取整的时候,正数,则取其整数部位,抹掉小数部位;floor(1.3)=1.0
负数,则取其整数部位+1;floor(-1.3)=-2.0
整数,则不变。floor(1.0)=1.0
round函数:在英文中,是有大约、环绕,在某某四周、附近的意思。
所以,该函数用于四舍五入
规律:
四舍五入的时候,正数,小数位大于5,则整数位+1;round(1.6)=2.0
小数位小于5,则整数位不变,抹掉小数位;round(1.3)=1.0
负数,小数位大于5,则整数位+1;round(-1.6)=-2.0文章来源:https://www.toymoban.com/news/detail-603525.html
小数位小于5,则整数位不变,抹掉小数位;round(-1.3)=-1.0文章来源地址https://www.toymoban.com/news/detail-603525.html
到了这里,关于【C++】上下取整&&取整函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!