python 精度处理四舍五入_python中四舍五入精度问题

python存float的时候如财务数据等需要四舍五入两位数,但是python自带的四舍五入方法偶尔会存在“五舍六入”,提供两种处理函数

from decimal import Decimal, ROUND_HALF_UP

def round_dec(n, d=2):

s = '0.' + '0' * d

return Decimal(str(n)).quantize(Decimal(s), rounding=ROUND_HALF_UP)

print(round_dec(3.545,2))

# 保留两位小数

def myRound(res):

if res=="" or res==0:

returnData=0.00

else:

if isinstance(res,float):

new_res=res*100

returnData=round(new_res)/100

elif isinstance(res,str):

new_res=float(res.replace(',',''))*100

returnData = round(new_res) / 100

else:

new_res=res*100

returnData = round(new_res) / 100

return str(returnData)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值