python round leaving a trailing 0

我正在尝试将python中的浮点数四舍五入到小数点后零位。


但是,舍入方法每次都留下尾随0。


value = 10.01

rounded_value = round(value)

print rounded_value

结果为10.0,但我想要10


如何做到这一点?转换为整数?


catspeake
浏览 154回答 3
3回答

慕村225694

10.0和10是相同的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')

噜噜哒

强制转换为int无疑是最简单的方法。如果您热衷于保持浮动,以下是Alex Martelli提供的方法:print ('%f' % value).rstrip('0').rstrip('.')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python