有一个浮点型变量 X,如何判断它是否为 0

作者&投稿:佛阮 (若有异议请与网页底部的电邮联系)
有一个浮点型变量X,如何判断它是否为0用除法~

浮点型正常判断会出错,只能使用>=或者是<=来求过渡,如果喜欢,用double可以提高不少精度,我试过double至少可以可以精确到小数点后6位数可以使用==判断,再多没试过

对精度要求不高的话,直接if(x == 0)

一般来说浮点数有讲究,需要判断误差;
if(x < 0.00000000001)
上面的0.00000000001就是你认为的精度【误差】,
如果浮点数小于0.00000000001,那么我认为浮点数就是0;

假定X 的绝对值小于 一个某个数则为0。
例如:
#include <stdio.h>
#include <float.h>
#include <math.h>

int main(){
double X= 2.22507e-308;
printf("%g %g\n",X, DBL_MIN);
if (fabs(X) < DBL_MIN) printf("it is zero\n");else printf("it is no zero\n");
}