C語言float數據類型介紹、示例和應用經驗

1、浮點數的概念

浮點數也稱小數或實數。例如,0.0、75.0、4.023、0.27、-937.198 都是合法的小數。

C語言中採用float和double關鍵字來定義小數,float稱爲單精度浮點型,double稱爲雙精度浮點型,long double更長的雙精度浮點型。

2、測試float數據類型

C標準規定,float類型必須至少能表示6位有效數字,且取值範圍至少是10-37~10+37

我們用以下代碼來測試float類型的特點。

示例

/*
 * 程序名:book.c,此程序測試float的特徵
 * 作者:C語言技術網(www.freecplus.net) 日期:20190525
*/
#include <stdio.h> 

int main()
{
  float ff2=9.9;   // 測試2位的浮點數
  printf("ff2=%f\n",ff2);
  if (ff2==9.9) printf("ff2==9.9\n");

  float ff5=99.999;   // 測試5位的浮點數
  printf("ff5=%f\n",ff5);
  if (ff5==99.999) printf("ff5==99.999\n");

  float ff6=999.999;   // 測試6位的浮點數
  printf("ff6=%f\n",ff6);
  if (ff6==999.999) printf("ff6==999.999\n");

  float ff7=9999.999;   // 測試7位的浮點數
  printf("ff7=%f\n",ff7);
  if (ff7==9999.999) printf("ff7==9999.999\n");

  float ff8=99999.999;   // 測試8位的浮點數
  printf("ff8=%f\n",ff8);
  if (ff8==99999.999) printf("ff8==99999.999\n");
}

運行效果
在這裏插入圖片描述

從程序運行的結果可以看出float數的兩個特徵:

1)float數據類型表達的是一個近似的數,不是準確的,小數點後的n位有誤差,浮點數的位數越大,誤差越大,到8位的時候,誤差了1,基本上不能用了。

2)用“==”可以比較兩個整數或字符是否相等,但是,看起來相等的兩個浮點數,就是不會相等。

3、應用經驗

float浮點數有一些坑,例如兩個浮點數不相等和精度的問題,在實際開發中,我們經常用整數代替浮點數,因爲整數是精確的,效率也更高。

例如人的身高一米七五,以米爲單位,用浮點數表示是1.75米,如果以釐米爲單位,用整數表示是175。

在實際開發中,建議棄用float數據類型。二十年來,我從不使用它。

4、版權聲明

C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。

來源:C語言技術網(www.freecplus.net

作者:碼農有道

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章