【C++】上下取整取整函数
题目描述
任意给出一个小数,编程求不小于它的最小整数与不大于它的最大整数。
即求出这个小数往下取整与往上取整的值。
输入描述:
输入一行,包含一个浮点数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
小数位小于5,则整数位不变,抹掉小数位;round(-1.3)=-1.0
【C++】上下取整取整函数相关推荐
- Python3 除法取整取余,上下取整
Python3 除法取整取余,上下取整 题目:0,1,2三个数字,取0时得到1,2:取1时得到0,2:取2时得到0,1: 除法 [In]:3/2 [Out]:1.5 取整 [In]:3//2 [Out ...
- C语言学习之取整取余
1.前言 对于取整,在数学中我们最常见的作法就是四舍五入取整.而在C语言中,我们则是直接通过取整数部分,舍弃小数部分的方式进行取整.那么,所有语言的取整方式是相同的吗?而对于取余,我们可能经常会听到取 ...
- java 取整取余_Java取整、取余
最近在做一个计算的时候用到了取整取余的计算,这里对取整.取余.取模做一下总结~~~ 1.取整 int a = 10; int b = 3; double c = a / b;//c = (10/3) ...
- c语言用int取整取了小数_[c语言取整算法]C语言中float型数据怎么取整数部分算法或取小数部分...
C语言中float型数据怎么 取整数部分算法 或取小数部分 float福n=12.223; int x=(int)n; float y=n-(float)x; C语言有哪些取整函数? C语言有以下几种 ...
- c语言用int取整取了小数_c语言如何取整
大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. C语言有以下几种取整方法: 1.直接赋值给整数变量:如: int i = 2.5; 或 i = (int) 2.5:这种方法采用的 ...
- float取整数部分_python的除法问题 取整取余/向上向下取整/四舍五入
除法的运算 '/' 无论是否整除返回的都是 float ,暂且叫它精确除法 例如 : 2 '%' 取余数 返回除法的余数 例如 : 2%3 2 3%2 1 '//'无论是否整除返回的都是 int ,是 ...
- 取整取余(模)知多少?
本文介绍几种常见的整除取整方式,以及 % 运算问题. 一. 取整方式 以C语言为例,相信大多数同学都知道以下事实: int a = 5, b = 2; a / b; // 答案为2,不是2.5 当 a ...
- c语言用int取整取了小数_C语言取整方法总结
C语言有下面几种取整方法: 1. 直接赋值给整数变量 int i = 3.5; 或 i = (int) 3.5; 这样的方法採用的是舍去小数部分. 2.整数除法运算符' / '取整 ' / '本身 ...
- c语言用int取整取了小数_c语言小数取整的公式 c语言取整规则
C语言,三种取整舍小数的方法有什么? C语言有以下舍入方法: 1.直接给整型变量赋值.例如:int i=2.5或i=(int)2.5,此方法对小数部分进行舍入 2,C/C中的整数除法运算符有舍入函数( ...
最新文章
- 智源青年科学家代季峰:用“数据+知识”解决图像理解的四大挑战
- win10redis闪退
- 每天一道LeetCode-----将字符串切分成若干单词,使得每个单词都在给定的字典中,求出所有的切分结果
- 重温Javascript(四)-函数
- Raft协议安全性保证
- 牛客题霸 [ 岛屿数量] C++题解/答案
- Mybatisplus插件
- Flask中数据库的应用
- 【leetcode】523. Continuous Subarray Sum
- Origin常见使用问题集锦
- bt tracker服务器 相关内容
- 【Linux】Linux的进程调度
- 第二类曲面积分、场论、高斯公式和斯托克斯公式
- python二进制格式追加_Python追加/填充二进制文件添加garbag
- gitlab展示CHANGELOG
- 孙宇晨:区块链行业势必迎来光明的未来
- ccs dat数据 matlab,详解CCS中的.dat文件
- 3万字英国留学生Java后台面经,中offer率5/7 精
- RBG灯颜色渐变(颜色要尽可能多)程序分析
- Win10夜间模式无法关闭解决方法