1、通常,python四舍五入使用内置的round函数就可以了。
2、然而,对于需要精确的四舍五入,就有问题。
3、原因是,部分小数无法完全用二进制表示。
3、于是,作为一个较方便的做法,我们可以使用下面方式实现精确的四舍五入:def round_up(value): """四舍五入保留2位小数 :param value:数值。
4、原理就是将数字放大100倍,以利用下面的精确的四舍五入的结果 。
由于小数取整会采用比较暴力的截断方式,即向下取整,所以要想使得 int() 按照“四舍五入”的方式取整,可以采用如下方法:
5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5
5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6
就是向上取整,也就是我这次数据处理中需要的,由于之前没在Python中用到过,所以不太熟悉,其实Python的math中就带了向上取整的函数,即 ceil 方法,专门用于向上取整,实例如下:
>>> import math
>>> math.ceil(3.25)
4.0
>>> math.ceil(3.75)
4.0
python3.3.2中可行(其他版本,大家可以试试)
方式:round(数值)
例子:
round(0.6) = 1
round(0.5) = 0【注意此为分界】
round(0.4) = 0