-
取整
2021-03-14 14:09:33引:使用各种方式取整 大于0的小数 四舍五入取整 思路:加上0.5 取整数部分 #include<iostream> #include<algorithm> using namespace std; int main() { int n; float m; scanf("%f",&m); n=...引:使用各种方式取整 大于0的小数
四舍五入取整
思路:加上0.5 取整数部分
#include<iostream> #include<algorithm> using namespace std; int main() { int n; float m; scanf("%f",&m); n=(int)(m+0.5); printf("%d",n); return 0; }
向下取整
思路:直接取整数部分
#include<iostream> #include<algorithm> using namespace std; int main() { int n; float m; scanf("%f",&m); n=(int)(m); printf("%d",n); return 0; }
向上取整
思路:取整数部分+1
#include<iostream> #include<algorithm> using namespace std; int main() { int n; float m; scanf("%f",&m); n=(int)(m)+1; printf("%d",n); return 0; }
-
Python取整——向上取整、向下取整、四舍五入取整、向0取整
2018-12-22 16:14:23首先,不得不提醒大家一个容易被忽视或者搞混的问题——一般的,0.5这种末尾是5的小数,四舍五入取整应进位。这个进位的意思是:-0.5 → -1;0.5 → 1.即正负情况不同,都向着远离0,使得绝对值更大的方向进位 向上...废话少叙,直接上code:
首先,不得不提醒大家一个容易被忽视或者搞混的问题——一般的,0.5这种末尾是5的小数,四舍五入取整应进位。这个进位的意思是:-0.5 → -1;0.5 → 1.即正负情况不同,都向着远离0,使得绝对值更大的方向进位
- 向上取整:math.ceil()
import math math.ceil(-0.5) >>> 0 math.ceil(-0.9) >>> 0 math.ceil(0.3) >>> 1
如code所见,math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此
-
四舍五入:round()
round(-2.5) >>> -2 round(-1.5) >>> -2 round(-0.5) >>> 0 round(0.5) >>> 0 round(1.5) >>> 2 round(2.5) >>> 2
如code所示,round()当不传入第二个参数时默认取整,具体就是按照四舍五入来。但值得一提的是这里对小数末尾为5的处理方法:当末尾的5的前一位为奇数:向绝对值更大的方向取整(比如-1.5、1.5处理结果);当末尾的5的前一位为偶数:去尾取整(比如-2.5,-0.5,0.5和2.5的处理结果)。
-
向下取整:math.floor()
math.floor(-0.3) >>> -1 math.floor(0.9) >>> 0
简单且忠实地向下取整,不再讨论
-
两个有趣且特殊的Python取整:int()、整除"//"
-
int()
int(-0.5) >>> 0 int(-0.9) >>> 0 int(0.5) >>> 0 int(0.9) >>> 0
一句话总结:int()函数是“向0取整”,取整方向总是让结果比小数的绝对值更小
-
"//"
(-1) // 2 # -0.5 >>> -1 (-3) // 2 # -1.5 >>> -2 1 // 2 # 0.5 >>> 0 3 // 2 # 1.5 >>> 1
一句话总结:“整除”符号运算将结果忠实地向下取整,与math.floor()处理结果一样
-
总结一下:
- 向上取整:math.ceil()
- 向下取整:math.floor()、整除"//"
- 四舍五入:round()——奇数向远离0取整,偶数去尾取整;或言之:奇数进位,偶数去尾
- 向0取整:int()
由于最近在做算法题,许多算法题都要涉及(0-1)/2这类的边界计算,这时候我们想让这个-0.5取整至0,而且想让(4-1)/2的结果1.5取整至1,即正数时向下取整,负数时向上取整,总而言之就是向0取整,这时候我们可以用int()
- 向上取整:math.ceil()
-
Oracle的取整函数
2015-11-17 10:49:20oracle涉及到取整的函数主要有4个,两个单参数的(ceil和floor),两个双参数的(trunc和round)。双参数不仅可以取整,也可以取到任一位小数,甚至可以取到任一位整数。这些函数参数为正数时比较好理解,为负数时...作者:iamlaosong
oracle涉及到取整的函数主要有4个,两个单参数的(ceil和floor),两个双参数的(trunc和round)。双参数不仅可以取整,也可以取到任一位小数,甚至可以取到任一位整数。这些函数参数为正数时比较好理解,为负数时就要好好想一想了,不要用错了,好在用于负数的机会不多。
1、ceil(n)取整(大),取比真值大的最小整数,注意正负数的取值:
如ceil(251.0001)=252,ceil(-251.0001)=-251,ceil(-251.9999)=-251;
select ceil(251.0000001) from dual;
结果:252
2、floor(n)取整(小),取比真值小的最大整数,注意正负数的取值:
如floor(251.9999)=251,floor(-251.9999)=-252,floor(-251.0001)=-252;
这两个函数功能正好相反。
记忆恨简单:ceil,天花板,在上面,自然往高了取值;floor,地板,自然往低了取值。
3、trunc(n,p)取指定位置部分(截取),p指定截取数值的位置,p为0时表示截取整数部分,可以或略:
如trunc(251.0001)=251,trunc(-251.0001)=-251,trunc(-251.9999)=-251;
当p为正数时,表示截取时保留小数的位数;当p为负数时,表示截取时保留整数的位置,例如:
trunc(251.1234,2)=251.12,trunc(251.1234,-2)=200,trunc(251.1234,-1)=250;
4、round(n,p)取指定位置部分(四舍五入),同trunc类似,p指定截取数值的位置,p为0时表示截取整数部分,可以或略:
round(251.34)=251,round(251.56)=252,round(-251.34)=-251,round(-251.56)=-252;
当p为正数时,表示截取时保留小数的位数;当p为负数时,表示截取时保留整数的位置,例如:
round(251.1234,2)=251.12,round(251.1234,-2)=300,round(251.1234,-1)=250;
四舍五入时只考虑绝对值,不用关心正还是负。
记忆方法:trunc,截取,相当于刀切到那儿是哪儿,不拖泥带水;round,圆,把后面的值圆回来,所以四舍五入。
下面是四个函数的取整案例:
select trunc(251.75),round(251.75),floor(251.000001),ceil(251.000001) from dual;
结果:251,252,251,252
select trunc(-251.75),round(-251.75),floor(-251.000001),ceil(-251.000001) from dual;
结果:-251,-252,-252,-251
5、最后顺便说一下取余函数mod(n,m),n除以m后的余数,例如:mod(91,30)=1一般n,m是整数,不过,小数也可以,例如:select mod(90.32,26.3) from dual;结果是:11.42 -
详解易语言绝对取整和取整的区别
2020-08-26 12:24:36在本篇内容里小编给大家分享了关于易语言绝对取整和取整的区别相关是指点,对此有需要的朋友们参考学习下。 -
BigDecimal取整
2020-06-28 09:10:55Java中BigDecimal取整方法 BigDecimal bd = new BigDecimal("12.1"); long l = bd.setScale( 0, BigDecimal.ROUND_UP ).longValue(); // 向上取整 long l = bd.setScale( 0, BigDecimal.ROUND_DOWN ).longValue();...Java中BigDecimal取整方法
BigDecimal bd = new BigDecimal("12.1"); long l = bd.setScale( 0, BigDecimal.ROUND_UP ).longValue(); // 向上取整 long l = bd.setScale( 0, BigDecimal.ROUND_DOWN ).longValue(); // 向下取整 * 对于正数而言,ROUND_UP = ROUND_CEILING,ROUND_DOWN = ROUND_FLOOR
各个roundingMode详解如下:
- ROUND_UP:非0时,舍弃小数后(整数部分)加1,比如12.49结果为13,-12.49结果为 -13
- ROUND_DOWN:直接舍弃小数
- ROUND_CEILING:如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作 (一句话:取附近较大的整数)
- ROUND_FLOOR: 如果 BigDecimal 是正的,则做 ROUND_DOWN 操作;如果为负,则做 ROUND_UP 操作(一句话:取附近较小的整数)
- ROUND_HALF_UP:四舍五入(取更近的整数)
- ROUND_HALF_DOWN:跟ROUND_HALF_UP 差别仅在于0.5时会向下取整
- ROUND_HALF_EVEN:取最近的偶数
- ROUND_UNNECESSARY:不需要取整,如果存在小数位,就抛ArithmeticException 异常
-
Latex——向下取整,向下取整
2019-10-16 14:28:44Latex——向下取整,向下取整 向下取整: $\lfloor x \rfloor$ 例如:⌊x⌋\lfloor x \rfloor⌊x⌋ 向上取整: $\lceil x \rfceil$ 例如:⌈x⌉\lceil x \rceil⌈x⌉ -
向下取整数学符号_向上取整与向下取整
2021-01-17 16:32:11对小数不为零的数操作:向上取整 不管四舍五入的规则 只要后面有小数前面的整数就加1向下取整 不管四舍五入的规则 只要后面有小数忽略小数给定 4.9调用用向下取整函数 得到的是 4调用用向上取整函数 得到的是 5Word-&... -
向下取整向上取整
2019-08-09 21:55:02我们平时用5/2=2是向下取整,而负数的话是-7/2=-3,是向上取整 在一些题目他会要求向上取整还是向下取整 可以用这个函数 函数原型 double floor(doube x);//都是double类型!!! 头文件 #include<math.h> ... -
向上取整和向下取整
2021-03-07 14:37:09取整函数对小数点后面数字不为0的树操作 给一个整数, 取整就返回整数本身 对小数不为0的数操作: 比如:1.9 调用上取整函数 得到: 2 调用下取整函数 得到: 1 C++内部是下取整 -
java取整6_JAVA取整
2021-03-10 09:10:21舍掉小数取整:Math.floor(2.0)=2舍掉小数取整:Math.floor(2.1)=2舍掉小数取整:Math.floor(2.5)=2舍掉小数取整:Math.floor(2.9)=2舍掉小数取整:Math.floor(-2.0)=-2舍掉小数取整:Math.floor(-2.1)=-3舍掉小数取整:... -
Python取整 — 向上取整、向下取整、四舍五入取整、向0取整
2019-08-28 15:44:38注:round()——针对小数点后.5的情况:奇数向远离0取整,偶数去尾取整;或言之:奇数进位,偶数去尾。之所以出现这种情况,主要是因为存储时存的不一样.举个例子4.5存储时存的是4.449。所有偶数位都是这样 ... -
向上取整+向下取整
2021-04-04 16:57:22向上取整, 运算称为 Ceiling,用数学符号 ⌈⌉ (上有起止,开口向下)表示,。 ceil(x)返回的是大于x的最小整数。 向下取整, 运算称为 Floor,用数学符号 ⌊⌋ (下有起止,开口向上)表示。 floor(x)返回的是... -
c# 整数除法取整_c# 三种取整方法 向上取整 向下取整 四舍五入
2021-01-17 12:42:02c# 三种取整方法 向上取整 向下取整 四舍五入Math.Round:四舍六入五取整Math.Ceiling:向上取整,只要有小数都加1Math.Floor:向下取整,总是舍去小数public intLongestShifttime(){int longestShifttime = 0;... -
取整函数(向上取整 向下取整 四舍五入)
2019-04-17 16:42:41取整函数(在#include<math.h>之下) Floor() 会取不大于自变量的最大整数,这样自变量是3.1或3.9是没有区别的,返回都是3;自变量是-2.1或-2.9也是没有区别的,返回都是-3;(向下取整) #include<iostream&... -
php向上取整_PHP直接取整、四舍五入取整、向上取整、向下取整函数介绍
2021-03-22 19:45:48直接取整,舍弃小数,保留整数,字符串直接转成0:intval();2.四舍五入取整:round();3.向上取整:ceil();4.向下取整:floor()。一、直接取整:intval()如果是字符型的会自动转换为0。intval(3.156); // 3intval...