python如何比較兩個浮點數是否相等?
相關推薦:《python影片》
float 類型不能比較相等或不等,但可以比較>,=,
用==從語法上說沒錯,但是本來應該相等的兩個浮點數由於計算機內部表示的原因可能略有微小的誤差,這時用==就會認為它們不等。應該使用兩個浮點數之間的差異的絕對值小於某個可以接受的值來判斷判斷它們是否相等,比如用
if (fabs(price - p) < 0.000001)
來代替
if (price == p)
很多工程的應用都是採用計算精確度的方式
定義一個精度,用差的絕對值比較,在精度範圍內就認為是相等的;大小可以直接比較。
不可將浮點變數以「==」或「!=」與任何數字比較。
千萬要留意,無論是float 還是double 類型的變量,都有精確度限制。所以一定要
避免將浮點變數用「==」或「!=」與數字比較,應該設法轉換成「>=」或「假設浮點變數的名字為x,應將
if (x == 0.0) // 隱含錯誤的比較
轉換為
if ((x>=-EPSINON) && (x<=EPSINON))
其中EPSINON 是允許的誤差(即精度)。
計算機表示浮點數(float或double類型)都有一個精度限制,對於超出了精度限制的浮點數,計算機會把它們的精度之外的小數部分截斷。因此,本來不相等的兩個浮點數在計算機中可能就變成相等的了。例如:
float a=10.222222225,b=10.222222229
數學上a和b是不相等的,但在32位元計算機中它們是相等的。
如果兩個同符號浮點數之差的絕對值小於或等於某一個可接受的誤差(即精確度),就認為它們是相等的。
不要直接用「==」或「!=」對兩個浮點數進行比較,但是可以直接用「」比較誰大誰小。
#include #include #define EPSILON 1e-6 int main(void) { float a = 0.000003; float b = 0.000005; printf("a=%f/n",a); printf("b=%f/n",b); printf("abs(a-b)=%f/n",abs(a-b)); printf("fabs(a-b)=%f/n",fabs(a-b)); if ( fabs(a-b) <= EPSILON ) //判断浮点数是否相等 { printf("a==b/n"); }else { printf("a!=b/n"); } if ( fabs(a) <= EPSILON) //判断浮点数是否等于0 { printf("a==0/n"); }else { printf("a!=0/n"); } if (a > b) //比较两个浮点数的大小, { printf("a>b/n"); }else { printf("a } return 0; }
以上是python比較兩浮點數是否相等的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

如何解決jieba分詞在景區評論分析中的問題?當我們在進行景區評論分析時,往往會使用jieba分詞工具來處理文�...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版