首先要提醒大家一个容易被忽视或混淆的问题——一般来说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 教程:pdfplumber 提取 pdf 中的表格数据09/04
- ♥ 使用python3 os后程序无法运行怎么办?12/14
- ♥ 如何在 Python 库之间转换12/23
- ♥ 用 Python 写了一个「表情包」,赚了250万02/20
- ♥ python方法的绑定和解除绑定01/05
- ♥ python记录器的配置01/04
内容反馈