Python取整——向上取整、向下取整、四舍五入取整、向0取整
2021/9/10 11:05:10
本文主要是介绍Python取整——向上取整、向下取整、四舍五入取整、向0取整,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
废话少叙,直接上code:
首先,不得不提醒大家一个容易被忽视或者搞混的问题——一般的,0.5这种末尾是5的小数,四舍五入取整应进位。这个进位的意思是:-0.5 → -1;0.5 → 1.即正负情况不同,都向着远离0,使得绝对值更大的方向进位
1、向上取整:math.ceil()
import math math.ceil(-0.5) >>> 0 math.ceil(-0.9) >>> 0 math.ceil(0.3) >>> 1
如code所见,math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此
2、四舍五入: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的处理结果)。
3、向下取整:math.floor()
math.floor(-0.3) >>> -1 math.floor(0.9) >>> 0
简单且忠实地向下取整,不再讨论
4、分别取整数部分和小数部分
有时候我们可能需要分别获取整数部分和小数部分,这时可以用 math 模块中的 modf() 方法,该方法返回一个包含小数部分和整数部分的元组:
>>> import math >>> math.modf(3.25) (0.25, 3.0) >>> math.modf(3.75) (0.75, 3.0) >>> math.modf(4.2) (0.20000000000000018, 4.0)
PS:两个有趣且特殊的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()
原文链接:https://blog.csdn.net/weixin_41712499/article/details/85208928
这篇关于Python取整——向上取整、向下取整、四舍五入取整、向0取整的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南