1. 程式人生 > 程式設計 >c語言double型別預設輸出小數幾位

c語言double型別預設輸出小數幾位

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 <stdio.h>
#include <stdlib.h>
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型別輸出小數內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!