python中round(四舍五入)的坑

python

  python中的round函数不能直接拿来四舍五入,一种替代方式是使用Decimal.quantize()函数。

具体内容待补。

>>> round(2.675, 2)

2.67

 可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。

 1 # -*- coding: utf-8 -*-

2 from decimal import Decimal, ROUND_HALF_UP

3

4

5 class NumberUtil(object):

6 @staticmethod

7 def _round_by_decimal(number, quantize_exp):

8 str_num = str(number)

9 dec_num = Decimal(str_num).quantize(quantize_exp, rounding=ROUND_HALF_UP)

10 return float(dec_num)

11

12 @staticmethod

13 def round_2_digits_by_decimal(number):

14 return NumberUtil._round_by_decimal(number, Decimal('0.01'))

15

16 @staticmethod

17 def round_4_digits_by_decimal(number):

18 return NumberUtil._round_by_decimal(number, Decimal('0.0001'))

参考文章:

(1)python中关于round函数的小坑

(2)[python]decimal常用操作和需要注意的地方

以上是 python中round(四舍五入)的坑 的全部内容, 来源链接: utcz.com/z/387306.html

回到顶部