考慮使用 Decimal 來解決精度的問題
前言
最近在 Python 發生 round() 無法正常四捨五入的問題,在網上查詢後發現 Python 的 float 會有精度的問題,在此把學習的過程做個紀錄。
內容
範例如下
from decimal import Decimal,ROUND_HALF_UP print(round(1.115, 2) )#1.11 print(Decimal('1.115').quantize(Decimal('.00'), ROUND_HALF_UP) )#1.12
1.115 在作 round() 會期望得到 1.12 ,但事實上卻是 1.11 ,要解決這個問題要透過 decimal 模組提供的 Decimal 來處理精度的問題,要四捨五入時透過 quantize() 來完成,這樣就可以得到期望的 1.12 。
沒有留言:
張貼留言