C語言中常用的小數有兩種類型,分别是 float 或 double;float 稱為單精度浮點型,double 稱為雙精度浮點型。不像整數,小數沒有那麼多幺蛾子,小數的長度是固定的,float 始終占用4個位元組,double 始終占用8個位元組。
c語言double類型預設輸出幾位小數?
C語言中,輸出double類型(雙精度實型)以及float類型(單精度實型)時,預設輸出6位小數(不足六位以 0 補齊,超過六位按四舍五入截斷)。
double a = 1;
printf("%lf\n", a);
輸出會是:
1.000000
但是有時六位會顯得很長,沒必要。比如計算平均分,一到兩位小數就足夠了。可是有時六位又不夠,需要更多位小數,比如計算高精度平方根。這時可以用printf的格式控制。如果要輸出n位小數,那麼可以用%.nlf的格式。其中n為數字。
如要輸出10位小數,那麼
printf("%.10lf\n", a);
即可。
内容擴充
小數的輸出
小數也可以使用 printf 函數輸出,包括十進制形式和指數形式,它們對應的格式控制符分别是:
%f 以十進制形式輸出 float 類型;
%lf 以十進制形式輸出 double 類型;
%e 以指數形式輸出 float 類型,輸出結果中的 e 小寫;
%E 以指數形式輸出 float 類型,輸出結果中的 E 大寫;
%le 以指數形式輸出 double 類型,輸出結果中的 e 小寫;
%lE 以指數形式輸出 double 類型,輸出結果中的 E 大寫。
下面的代碼示範了小數的表示以及輸出:
#include #include int main()
{
float a = 0.302;
float b = 128.101;
double c = 123;
float d = 112.64E3;
double e = 0.7623e-2;
float f = 1.23002398;
printf("a=%e \nb=%f \nc=%lf \nd=%lE \ne=%lf \nf=%f\n", a, b, c, d, e, f);
return 0;
}
運作結果:
a=3.020000e-01
b=128.100998
c=123.000000
d=1.126400E+05
e=0.007623
f=1.230024
到此這篇關于c語言double類型預設輸出小數幾位的文章就介紹到這了,更多相關c語言double類型輸出小數内容請搜尋腳本之家以前的文章或繼續浏覽下面的相關文章希望大家以後多多支援腳本之家!