C语言中比较两个浮点数是否相等的方法

亦凉 2022-04-24 15:54 413阅读 0赞

对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!

对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值!

  1. if( fabs(f1-f2) < 预先指定的精度)
  2. {
  3. ...
  4. }

例子

  1. #define EPSILON 0.000001 //根据精度需要
  2. if ( fabs( fa - fb) < EPSILON )
  3. {
  4. printf("fa<fb\n");
  5. }

fabs函数与abs函数

数学函数:fabs

原型:extern float fabs(float x);

用法:#include

功能:求浮点数x的绝对值

说明:计算|x|, 当x不为负时返回x,否则返回-x

举例:

  1. // fabs.c
  2. #include <syslib.h>
  3. #include <math.h>
  4. main()
  5. {
  6. float x;
  7. clrscr(); // clear screen
  8. textmode(0x00); // 6 lines per LCD screen
  9. x=-74.12;
  10. printf("|%f|=%f\n",x,fabs(x));
  11. x=0;
  12. printf("|%f|=%f\n",x,fabs(x));
  13. x=74.12;
  14. printf("|%f|=%f\n",x,fabs(x));
  15. getchar();
  16. return 0;
  17. }

abs函数是针对整数的

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5. int x=-10;
  6. printf("%d",abs(x));
  7. }

原文:https://blog.csdn.net/jk110333/article/details/8902707

发表评论

表情:
评论列表 (有 0 条评论,413人围观)

还没有评论,来说两句吧...

相关阅读