Python中有效的四舍五入
一、代码
代码如下(示例):
def round(x, n):
try:
if x > 0:
return Decimal(str(x)).quantize(Decimal(n), ROUND_HALF_UP)
else:
# float x need to be transformed to string
return Decimal(str(x)).quantize(Decimal(n), ROUND_HALF_DOWN)
except DecimalException as e:
return x
MAX_DECIMALLEN = '0.000000000001'
value = round(value, MAX_DECIMALLEN)
// 大佬教的 # 描述: 数据小数位处理,默认四舍五入,两位小数 # 输入: int/float # 输出:decimal.Decimal def round_value(f, n=2, type="ROUND_HALF_UP"): type_list = [ "ROUND_HALF_UP", # 四舍五入 "ROUND_UP", # 向上进位 "ROUND_DOWN", # 去尾保留 ] context = decimal.getcontext() context.rounding = type if type in type_list else "ROUND_HALF_UP" return round(decimal.Decimal(str(f), context), int(n))
总结
Python 四舍五入 、Decimal、ROUND_HALF_UP、ROUND_HALF_DOWN



