在Python中舍入一个数字,但保持零结尾

在Python中舍入一个数字,但保持零结尾,第1张

在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一样,您可能会选择滚动自己的舍入函数,或使用小数,因为

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存