为了账号安全,请及时绑定邮箱和手机立即绑定

python round leaving a trailing 0

python round leaving a trailing 0

catspeake 2021-03-19 14:13:14
我正在尝试将python中的浮点数四舍五入到小数点后零位。但是,舍入方法每次都留下尾随0。value = 10.01rounded_value = round(value)print rounded_value结果为10.0,但我想要10如何做到这一点?转换为整数?
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

10.010是相同的float值。当您使用print该值时,将获得字符串10.0,因为这是该值的默认字符串表示形式。(您通过调用获得的字符串相同str(10.0)。)

如果要使用非默认表示形式,则需要明确要求它。例如,使用format函数:

print format(rounded_value, '.0f')

或者,使用其他格式设置方法:

print '{:.0f}'.format(rounded_value)
print '%.0f' % (rounded_value,)

为何要使用'.0f'的详细信息在Format Specification Mini-Language中进行了描述,但很直观:f您想要的是定点格式(例如,10.0而不是,例如1.0E2),而.0您想要的小数点后没有数字(例如,10而不是10.0)。

同时,如果您选择该值的唯一原因round是用于格式化……则绝对不要这样做。将精度保留在浮点数上,然后按照以下格式进行修整:

print format(value, '.0f')


查看完整回答
反对 回复 2021-03-27
?
噜噜哒

TA贡献1784条经验 获得超7个赞

强制转换为int无疑是最简单的方法。如果您热衷于保持浮动,以下是Alex Martelli提供的方法:

print ('%f' % value).rstrip('0').rstrip('.')


查看完整回答
反对 回复 2021-03-27
  • 3 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信