浮點數判斷是否為0

2021-08-22 02:46:51 字數 435 閱讀 8885

浮點數因為儲存形式的原因不能直接和0值比較,當要判斷乙個浮點數是否等於0時:

fabs(x)<=1e-6 就是認為是0了

float,double分別遵循r32-24,r64-53的標準。

所以float的精度誤差在1e-6;double精度誤差在1e-15 

所以要判斷乙個單精度浮點數:則是if( abs(f) <= 1e-6);

要判斷乙個雙精度浮點數:則是if( abs(f) <= 1e-15 );

#include #include #include using namespace std;

int main()

else

if(fabs(b)<1e-15)

else

return 0;

}

判斷浮點數是否為0

看到論壇上有人問 精確判斷乙個浮點數是否等於0,不要用if data 1e 10 類似的做法。其實我們了解下計算機中是怎樣儲存浮點數的,這個問題的答案就很明了了。ieee754標準中,單精度浮點數 4byte 表示法 1bit符號位 s 8bit指數字 e,用階碼表示 23bit小數部分 尾數m 雙...

JS判斷是否為數字,是否為整數,是否為浮點數

正規表示式方法 function checkrate input 下面為普通函式寫法 function baseisnotnum thenum return false function baseisnotint theint return false function baseisnotfloat...

js判斷是否為數字, 是否為整數, 是否為浮點數

正規表示式方法 筆者測試可用 function checkrate input function baseisnotnum thenum return false function baseisnotint theint return false function baseisnotfloat th...