数字比较

基本类型 / 数字 / Double 和 Float

double a = 1.0;
double b = (0.3 * 3) + 0.1;
//b is 0.99999999999999989, not 1

//Wrong way to compare
bool isEqual1 = a == b;
//isEqual1 is false

//Correct way to compare
double delta = 1E-9;
bool isEqual2 = fabs(a - b) < delta;
//isEqual2 is true

printf("a is %.17g\n", a);
printf("b is %.17g\n", b);
printf("isEqual1 is %s\n", isEqual1 ? "true" : "false");
printf("isEqual2 is %s\n", isEqual2 ? "true" : "false");