C語言中比較兩個浮點數是否相等的方法,fabs和abs

來源:互聯網
上載者:User

今天在面試中碰到這個問題,當時還迷糊了一番,畢竟平時沒怎麼用過,記得以前看過,現在有點記不清了!這是C語言很基礎的東西,面試一般會遇到!

對兩個浮點數判斷大小和是否相等不能直接用==來判斷,會出錯!明明相等的兩個數比較反而是不相等!

對於兩個浮點數比較只能通過相減並與預先設定的精度比較,記得要取絕對值!

if( fabs(f1-f2) < 預先指定的精度){      ...}

例子

#define EPSILON 0.000001 //根據精度需要if ( fabs( fa - fb) < EPSILON ){printf("fa<fb\n");}

fabs函數與abs函數

數學函數:fabs
原型:extern float fabs(float x);
  
  用法:#include <math.h>
  
  功能:求浮點數x的絕對值
  
  說明:計算|x|, 當x不為負時返回x,否則返回-x
  
  舉例:

    // fabs.c            #include <syslib.h>      #include <math.h>      main()      {        float x;                clrscr();        // clear screen        textmode(0x00);  // 6 lines per LCD screen                x=-74.12;        printf("|%f|=%f\n",x,fabs(x));        x=0;        printf("|%f|=%f\n",x,fabs(x));        x=74.12;        printf("|%f|=%f\n",x,fabs(x));                getchar();        return 0;      }

abs函數是針對整數的
#include <stdio.h>#include <math.h>int main(){ int x=-10; printf("%d",abs(x));}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.