python round方法四舍五入精度问题

问题:

使用round()方法时,出现精度问题,导致四舍五入结果错误
例如:使用round()方法,3.545四舍五入后为3.54

解决方案:

使用decimal模块,已验证5000+次,具体操作见例子

例子:

#coding=utf-8
import decimal
from decimal import Decimal

num_1=184.5
num_2=360

result=str1/str2
print(result) #未四舍五入
print(round(result,3)) #round()方法四舍五入

context=decimal.getcontext() # 获取decimal现在的上下文
context.rounding = decimal.ROUND_HALF_UP #修改rounding策略
print(round(Decimal(num_1)/Decimal(num_2), 3)) #Decimal方法四舍五入

输出结果:

0.5125
0.512
0.513

你可能感兴趣的:(python round方法四舍五入精度问题)