栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号