Python内置的round函数,用来取小数点后N位,还是很方便的。但是要注意,round函数执行的不是四舍五入。请参考:Python实现四舍五入的方法。
看代码吧,要注意round函数在去小数点后N位时,N可以是负数:
>>> round(0.123456)
>>> 0 # integer type
>>> round(0.123456, 1)
0.1
>>> round(0.123456, 2)
0.12
>>> round(0.123456, 3)
0.123
>>> round(0.123456, 4)
0.1235
>>> round(0.123456, 5)
0.12346
>>>
>>> round(123456.12, -1)
123460.0
>>> round(123456.12, -2)
123500.0
>>> round(123456.12, -3)
123000.0
>>> round(123456.12, -4)
120000.0
>>> round(123456.12, -5)
100000.0
>>> round(123456.12, -6)
0.0
>>> round(123456.12, -7)
0.0
当第2个参数为负数时,舍入发生在小数点的左边。没有第2个参数的时候,round函数返回的是int类型。
round函数的舍入,执行的是银行家舍入法,英文叫 ROUND HALF EVEN。
HALF EVEN的规则是:向最近的数据舍入,如果这个数字距离两边相等,取偶数。
>>> round(1.5)
2
>>> round(2.5)
2
>>> round(1.265,2)
1.26
>>> round(1.275,2)
1.27
1.265和1.275,在取小数点后两位的时候,不是1.27以及1.28,这不是错误。因为二进制的计算机本就不能精确表示十进制的小数。
在严格要求小数的四舍五入的场景下,不能使用round函数,如果要求不严格,只是要求取一个近似值,round函数就OK了,因为它使用起来最简单。
-- EOF --