首先要提醒大家一个容易被忽视或混淆的问题——一般来说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
正如你在代码中看到的,math.ceil() 严格遵循四舍五入,并且所有小数都沿较大值的方向四舍五入,无论是正数还是负数。
四舍五入:round()
round(-2.5)
>>> -2
round(-1.5)
>>> -2
round(-0.5)
>>> 0
round(0.5)
>>> 1
round(1.5)
>>> 2
round(2.5)
>>> 2
如代码所示,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()
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中编写多行注释10/22
- ♥ python的界面是什么样的08/13
- ♥ python如何匹配txt12/24
- ♥ 如何在python中运行函数11/14
- ♥ Python如何实现条件变量同步01/02
- ♥ python的空闲在哪里09/08
内容反馈