在Python 中比較浮點數是否幾乎相等:仔細觀察
由於潛在的捨入和精度問題,比較浮點數是否完全相等Python 可能具有挑戰性。這是一個眾所周知的問題,Bruce Dawson 的「比較浮點數,2012 年版」部落格文章中強調了這一點。為了在 Python 中有效應對這項挑戰,可以考慮多種方法。
標準函式庫函數
Python 3.5 引入了math.isclose() 和cmath.isclose()函數,專門用於將浮點數與容差等級進行比較。這些函數接受三個參數:
如果a和b之間的絕對差小於rel_tol * max(abs(a), abs(b))或abs_tol,則這些值被認為是相等的。
早期Python 版本的自訂函數
如果您使用的Python 版本早於3.5 中,您可以根據文件中提供的以下程式碼片段實作自己的isclose ()函數:
def isclose(a, b, rel_tol=1e-09, abs_tol=0.0): return abs(a - b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
此自訂函數提供與標準函式庫函數相同的功能,可讓您比較內部的浮點數指定的公差範圍。
以上是如何在 Python 中準確比較浮點數是否接近相等?的詳細內容。更多資訊請關注PHP中文網其他相關文章!