double类型的变量与0的对比

double类型变量与0比较

概述

日常总是会遇到double类型变量与0之间的比较。非严格情况下直接与0比较了,但实际上这是一种错误的写法。double为双精度类型,其一般保留15为小数。而Flaot单精度类型一般保留6为小数。故而不能直接与0进行比较,虽然有时候会得到自己想要的结果,但并不严谨。

实现

这里选择一个比较小的数1e-8,取其近似数来与double类型变量比较。

double类型

double类型等于0

double a = 4.343564;
if(fabs(a - 0) < 1e-8 ){
    
    } //相当于a > -(1e-8) && a < 1e-8

double类型大于0

double a = 4.343564;
if(a > 1e-8 ){
    
    }

double类型小于0

double a = 4.343564;
if(a < -(1e-8) ){
    
    } 

double类型不等于0

double a = 4.343564;
if(fabs(a - 0) > 1e-8 ){
    
    } //相当于a < -(1e-8) && a > 1e-8

仅以记录,若有不对,望指出。

猜你喜欢

转载自blog.csdn.net/blqzj214817/article/details/128376525