98-Python-几种取整的方法
Python 几种取整的方法
数据处理是编程中不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理。取整的方式则包括向下取整、四舍五入、向上取整等等。
1、向下取整
向下取整直接用内建的 int()
函数即可:
1 >>> a = 3.75 2 >>> int(a) 3 3
2、四舍五入
对数字进行四舍五入用 round()
函数:
1 >>> round(3.25); round(4.85) 2 3 3 5
3、向上取整
向上取整需要用到 math
模块中的 ceil()
方法:
1 >>> math.ceil(3.25) 2 4 3 >>> math.ceil(3.75) 4 4 5 >>> math.ceil(4.85) 6 5
4、分别取整数部分和小数部分
有时候我们可能需要分别获取整数部分和小数部分,这时可以用 math
模块中的 modf()
方法,该方法返回一个包含小数部分和整数部分的元组:
1 >>> import math 2 >>> math.modf(3.25) 3 (0.25, 3.0) 4 >>> math.modf(3.75) 5 (0.75, 3.0) 6 >>> math.modf(4.2) 7 (0.20000000000000018, 4.0)
有人可能会对最后一个输出结果感到诧异,按理说它应该返回 (0.2, 4.0)
才对。这里涉及到了另一个问题,即浮点数在计算机中的表示,在计算机中是无法精确的表示小数的,至少目前的计算机做不到这一点。上例中最后的输出结果只是 0.2 在计算中的近似表示。Python 和 C 一样, 采用 IEEE 754
规范来存储浮点数,如果希望更详细的了解这一点,可以参考知乎话题: 为什么0.1+0.2=0.30000000000000004而1.1+2.2=3.3000000000000003?.
5、获取除法的整数和余数
使用divmod()方法,返回一个包含商和余数的元组(a // b, a % b)。
>>> ret = divmod(10, 3) >>> print(ret, type(ret)) (3, 1) <class 'tuple'> >>> ret1 = divmod(9, 3) >>> print(ret1, type(ret1)) (3, 0) <class 'tuple'>