讀古今文學網 > C語言解惑 > 3.2 數據類型的後綴符號 >

3.2 數據類型的後綴符號

新標準增加後綴u(U),用來表示整數常量是一個無符號數。浮點常量用後綴F(或f)表示它是float類型;L(或l)表示它是long double類型;若沒有後綴則是double類型。

注意浮點常量沒有後綴則是double類型。

【例3.4】請分析下面程序中存在的問題。


#include<stdio.h>
void main
( 
)
{
       float f=1234.567
;
       printf 
( "%f
, %10f\n"
,f
,f
);
}
  

浮點常量沒有後綴則是double類型,第1條語句的數字「1234.567」本身為double型,所以對定義「float f=1234.567;」,需要將它轉換為float型。若無轉換,編譯時會給出警告。


warning C4305
: 'initializing' 
: truncation from 'const double ' to 'float '
  

雖然有警告,但仍然可以輸出正確結果:「1234.567017,1234.567017」。

如果使用「1234.567F」表示常量,既可以排除警告,也可以保證得到正確的輸出結果。

如將定義改為「double f=1234.567」,則可得到正確輸出為「1234.567000,1234.567000」。

一定要注意使用正確的格式。例如,下面的定義


double f=1/4
;
  

中的f是等於0.250000還是0.000000?因為編譯器要先計算「1/4」,這是兩個整數相除,所以結果為0。如果寫作「1./4」,得到0.250000。在程序中千萬要注意這個問題。