亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中浮點(diǎn)數(shù)比較判斷!為什么不能用==(推薦)

 更新時(shí)間:2023年09月26日 09:26:59   作者:何雙新  
這篇文章主要介紹了python中浮點(diǎn)數(shù)比較判斷!為什么不能用==,本文給大家分享問題解決方法,需要的朋友可以參考下

問題:浮點(diǎn)數(shù)比較為什么不能用==來寫?

答:計(jì)算機(jī)里面的數(shù)字是由二進(jìn)制保存的,在計(jì)算機(jī)內(nèi)部有些數(shù)字不能準(zhǔn)確的保存,于是就保存了一個(gè)最靠近的數(shù)字。

計(jì)算機(jī)表示浮點(diǎn)數(shù)(float或double類型)都有一個(gè)精度限制,對于超出了精度限制的浮點(diǎn)數(shù),計(jì)算機(jī)會(huì)把它們的精度之外的小數(shù)部分截?cái)唷?/p>

因此比較兩個(gè)float是否相等,不能僅僅依靠==來判斷,而是當(dāng)他們的兩者的差值小于一個(gè)我們可以容忍的小值時(shí),就可以認(rèn)為它們相等。

解決辦法:

1、在python3.5之前,可以通過計(jì)算兩個(gè)浮點(diǎn)數(shù)之差來判斷兩個(gè)浮點(diǎn)數(shù)是否相等:

  例子1: abs(f1 - f2) <= allowed_error   可接受的誤差

或:

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)

2、python 3.5之后,PEP485提案中給出了解決方案。math模塊新增一個(gè)isclose函數(shù)用來判斷兩個(gè)浮點(diǎn)數(shù)的值是否接近或相等   例子2:

  • 源碼:
 isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
  • 參數(shù):
  • a,b:兩個(gè)需要比較的浮點(diǎn)數(shù);
  • rel_tol: 相對于輸入值的大小,被認(rèn)為是“接近”的最大差異;
  • abs_tol: 無論輸入值的大小,被認(rèn)為“接近”的最大差異
  • 本質(zhì)算法
<strong><code>    abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)</code></strong>
import math
print(math.isclose(2.1,2.2,rel_tol=0.1))
# 結(jié)果:True
# 同理abs_tol也可以自定義

到此這篇關(guān)于python中浮點(diǎn)數(shù)比較判斷!為什么不能用==的文章就介紹到這了,更多相關(guān)python浮點(diǎn)數(shù)比較內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中nuitka使用程序打包的實(shí)現(xiàn)

    python中nuitka使用程序打包的實(shí)現(xiàn)

    本文主要介紹了python中nuitka使用程序打包的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 如何在Django配置文件里配置session鏈接

    如何在Django配置文件里配置session鏈接

    這篇文章主要介紹了如何在Django配置文件里配置session鏈接,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python+selenium破解拼圖驗(yàn)證碼的腳本

    Python+selenium破解拼圖驗(yàn)證碼的腳本

    很多網(wǎng)站在登錄或者注冊時(shí)都會(huì)遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個(gè)小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個(gè)基于Python selenium的破解拼圖驗(yàn)證碼的腳本,需要的可以參考一下
    2022-02-02
  • python正則分組的應(yīng)用

    python正則分組的應(yīng)用

    組是通過 "(" 和 ")" 元字符來標(biāo)識(shí)的。 "(" 和 ")" 有很多在數(shù)學(xué)表達(dá)式中相同的意思;它們一起把在它們里面的表達(dá)式組成一組
    2013-11-11
  • Python軟件包安裝的三種常見方法

    Python軟件包安裝的三種常見方法

    python擁有非常豐富的擴(kuò)展包,下面這篇文章主要給大家介紹了關(guān)于Python軟件包安裝的三種常見方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python爬取門戶論壇評(píng)論淺談Python未來發(fā)展方向

    Python爬取門戶論壇評(píng)論淺談Python未來發(fā)展方向

    這篇文章主要介紹了如何實(shí)現(xiàn)Python爬取門戶論壇評(píng)論,附含圖片示例代碼,講解了詳細(xì)的操作過程,有需要的的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • Python可變和不可變、類的私有屬性實(shí)例分析

    Python可變和不可變、類的私有屬性實(shí)例分析

    這篇文章主要介紹了Python可變和不可變、類的私有屬性,結(jié)合實(shí)例形式分析了Python值可變與不可變的情況及內(nèi)存地址變化,類的私有屬性定義、訪問相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • python add_argument()用法解析

    python add_argument()用法解析

    這篇文章主要介紹了python add_argument()用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python排序方法中sort和sorted的區(qū)別詳解

    Python排序方法中sort和sorted的區(qū)別詳解

    在python中常用的排序函數(shù)就是sort()和sorted()這兩個(gè)函數(shù),使用 sort() 或內(nèi)建函數(shù) sorted() 對列表進(jìn)行排序,本文將詳細(xì)介紹sorted和sort兩者之間的區(qū)別,感興趣的可以了解一下
    2023-08-08
  • Python實(shí)現(xiàn)Opencv cv2.Canny()邊緣檢測

    Python實(shí)現(xiàn)Opencv cv2.Canny()邊緣檢測

    這篇博客將介紹Canny邊緣檢測的概念,并利用cv2.Canny()實(shí)現(xiàn)邊緣檢測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論