如何判斷浮點數的有效性 C語言

2021-10-03 07:23:18 字數 820 閱讀 3261

二、判斷浮點數的有效性

三、c

cc**

四、參考文獻/資料

在程式設計過程中,有時候會因為考慮不周或者計算精度的問題,使計算結果「異常」:nan(not a number)或inf(infinite)。本文首先總結了在程式設計過程中導致計算結果為nan或inf的情況,然後給出方法判斷浮點數的有效性。

計算結果為inf一般是因為計算結果超出浮點數的表示範圍。

例如:float y[5] = ;

當變數的計算結果為inf時,該變數可以與其他浮點數進行比較運算或其他運算,就如數學中的無窮一樣。

標頭檔案中,定義了常量dbl_max(flt_max),這個常量表示「能表示出來的最大的雙(單)精度浮點型數值」。採用函式:int is_finite_number(double x)或int is_finite_number(float x)來判斷x是否為乙個有限的數(既不是inf,又不是nan)。若x是inf則返回0,否則返回1。

計算結果為nan一般是因為對浮點數進行了未定義的操作。

例如:float y[5] = ;

同時,0.0/0.0、0.0*inf、inf/inf、inf-inf這些操作也會得到nan。

可以驗證,做判斷nan==nan時, 其結果是0或false。因此,可以用函式:int is_number(double x)

c語言如何判斷浮點數的有效性

fpclassify

c語言整數轉浮點數 浮點數的秘密

我們在學習 c 語言時,通常認為浮點數和小數是等價的,並沒有嚴格區分它們的概念,這也並沒有影響到我們的學習,原因就是浮點數和小數是繫結在一起的,只有小數才使用浮點格式來儲存。其實,整數和小數可以都使用定點格式來儲存,也可以都使用浮點格式來儲存,但實際情況卻是,c 語言使用定點格式儲存整數,使用浮點格...

C語言 浮點數格式

description 輸入n 0 n 10000 個浮點數,要求把這n個浮點數重新排列 並非排序,而是對齊 後再輸出。每個浮點數中都有小數點且總長度不超過50位。input 第1行是乙個正整數n n 10000 後面n行每行乙個浮點數,每個浮點數中都保證小數點會出現。浮點數的長度不超過50位,注意...

C語言 浮點數加法

description 求2個浮點數相加的和。題目中輸入輸出 現浮點數都有如下的形式 p1p2.pi.q1q2.對於整數部分,p1p2.pi是乙個非負整數。對於小數部分,不等於0。input 第1行是測試資料的組數n,每組測試資料佔2行,分別是兩個加數。每組測試資料之間有乙個空行,每行資料不超過10...