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'>

 

posted @ 2017-12-19 21:51  Druid_Py  阅读(513)  评论(0编辑  收藏  举报