作3d幾何計算時常常要處理浮點數。c++
1. 與 0 比較,首先浮點數沒有0,通常用1e-6 代替,無限接近。bash
const float a= 0.001;
if(a<1e-6) 複製代碼
2. 無窮數 infinityui
const float a = 1.0,b = 0.0;
bool result = isinf(a/b);
result --- true複製代碼
3. 非數字,好比複數等,c++ 沒有複數類型,因此爲無效數。spa
注意事項:對負數開方sqrt(-1.0)、對負數求對數(log(-1.0))、0.0/0.0、0.0*inf、inf/inf、inf-inf這些操做都會獲得nan。(0/0會產生操做異常;0.0/0.0不會產生操做異常,而是會獲得nan)。
3d
const c = 0.0;
bool result = isnan(c/c);
result --- true複製代碼