程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C語言中的小數(float,double)

C語言中的小數(float,double)

編輯:C語言基礎知識
小數也稱實數或浮點數。例如,0.0、75.0、4.023、0.27、-937.198 都是合法的小數。這是常見的小數的表現形式,稱為十進制形式。

除了十進制形式,也可以采用指數形式,例如 7.25×102、0.0368×105、100.22×10-2 等。任何小數都可以用指數形式來表示。

C語言中的小數也有這兩種表示形式。在書寫時,十進制形式和數學中的一樣,指數形式有所差異。

在C語言中小數的指數形式為:

aEn 或 aen

a 為尾數部分,是一個十進制數,n 為指數部分,是一個十進制整數,E或e是固定的字符,其值為 a×10n。例如:
  • 2.1E5 = 2.1×105,其中2.1是尾數,5是指數。
  • 3.7E-2 = 3.7×10-2,其中3.7是尾數,-2 是指數。
  • 0.5E7 = 0.5×107,其中0.5是尾數,7是指數。

C語言中小數的數據類型為 float 或 double:float 稱為單精度浮點數,double 稱為雙精度浮點數。不像整數,小數的長度始終是固定的,float 占用4個字節,double 占用8個字節。

小數的輸出

輸出 float 使用 %f 控制符,輸出 double 使用 %lf 控制符,如下所示:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    float a = 0.302f;
    float b = 1.23002398;
    double c = 123;
    double d = 78.429;
    float e = 128.101;
    printf("a=%f \nb=%f \nc=%f \nd=%lf \ne=%lf\n", a, b, c, d, e);

    return 0;
}
運行結果:
a=0.302000
b=1.230024
c=123.000000
d=78.429000
e=128.100998

對代碼的說明:
1) %f 默認保留六位小數,不足六位以 0 補齊,超過六位按四捨五入截斷。

2) 將整數賦值給 float 變量時會轉換為小數。

a、b、c、d 的輸出結果很容易理解,令人費解的是 e,才三位小數,為什麼會輸出一個近似值呢?這點我們將在《C語言float、double的內存表示》一節詳細講解。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved