python保留尾部数字_在Python中舍入一个数字,但保留结尾零

当你谈到尾随的零时,这是一个关于表示为字符串的问题,

你可以用>>> "%.2f" % round(2606.89579999999, 2)

'2606.90'

或者将现代风格与format函数结合使用:>>> '{:.2f}'.format(round(2606.89579999999, 2))

'2606.90'

并使用replace或translate删除点(_指的是python控制台中先前命令的结果):>>> _.translate(None, '.')

'260690'

请注意,此处不需要舍入,因为.2f格式适用于相同的舍入:>>> "%.2f" % 2606.89579999999

'2606.90'

但正如您提到的excel,您可能会选择滚动自己的舍入函数,或者使用decimal,因为float.round可能会由于浮点表示而导致奇怪的结果:>>> round(2.675, 2)

2.67

>>> round(2606.89579999999, 2)

2606.89>>> from decimal import *

>>> x = Decimal('2606.8950000000001')

# Decimal('2606.8950000000001')

>>> '{}'.format(x.quantize(Decimal('.01'), rounding=ROUND_HALF_EVEN))

'2606.90'

对于您最初的任务,它变成:>>> x = Decimal('2606.8950000000001')

>>> int((x*100).quantize(1, rounding=ROUND_HALF_EVEN))

260690

奇怪的四舍五入的原因出现在前面,Decimal:>>> x = Decimal(2606.8950000000001)

# Decimal('2606.89499999999998181010596454143524169921875') # internal float repr

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值