浮点数比较

来源:互联网 发布:综合网络资源管理系统 编辑:程序博客网 时间:2024/06/08 13:35

有如下程序段:

int i, n = 0;float x = 1, y1 = 2.1 / 1.9, y2 = 1.9 / 2.1;for ( i = 1; i < 22; i++ ) x = x * y1;while ( x != 1.0 ){ x = x * y2; n++;}printf( “ %d / n ”, n );

A 21
B 22
C 无限循环
D 程序崩溃

答案是C
浮点数的比较不可以用 = = 或者 !=
判断浮点数a,b是否相等:
abs(a-b)