作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复制代码