亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號