① c語言單精度浮點型為什麼可以輸出16位,%f可以代替%lf
%f 是默認輸出格式,默認輸出格式顯示到小數點下6位,前方有多少顯示多少。
float 型,精度是 有效數字 6-7 位。多出的位的精度不保證。
scanf() 輸入格式 double 必須用 %lf 不允許用 %f
printf() 輸入格式 double 可以 用 %lf 也 允許 用 %f
這是編譯器 這么定 的 游戲規則,沒太多 道理。
不是說 "%f 可以代替 %lf."
② c語言中%f與%lf有什麼區別
最簡單的區別:
%f
一般對應單精度類型
float
%lf
一般對應雙精度類型
double。
③ c語言中%f與%lf有什麼區別
%lf 和%f 的區別為:輸入不同、輸出不同、精度損失不同。
一、輸入不同
1、%lf :%lf 輸入數據時要求是float類型。
2、%f :%f 輸入數據時要求是double類型。
二、輸出不同
1、%lf :double類型以%lf 格式輸出數據時不會自動轉成%lf 格式,會導致輸入值錯誤。
2、%f :float類型以%f 格式輸出數據時會自動轉成%f 格式,不會導致輸入值錯誤。
三、精度損失不同
1、%lf :單精度數據使用%lf 格式會造成精度損失。
2、%f :雙精度數據使用%f 不會造成精度損失。
④ C語言雙精度的格式符是%le還是%lf
都可以,只是輸出形式有所不同,%lf是以普通的浮點數的方式輸出,而%le是以科學計數法的形式輸出。
例如:
int main()
{
double n;
scanf("%lf",&n);
printf("浮點數的方式%lf 科學計數法的方式%le",n,n);
return 0;
}
輸入:123.4556666
浮點數的方式123.455667 科學計數法的方式1.234557e+002
(4)c語言比lf更大的精度擴展閱讀:
單精度浮點數(float)與雙精度浮點數(double)的區別如下:
1,在內存中佔有的位元組數不同
單精度浮點數在機內佔4個位元組
雙精度浮點數在機內佔8個位元組
2,有效數字位數不同
單精度浮點數有效數字7位
雙精度浮點數有效數字16位
3,所能表示數的范圍不同
單精度浮點的表示範圍:-3.40E+38 ~ +3.40E+38
雙精度浮點的表示範圍:-1.79E+308 ~ +1.79E+308
4,在程序中處理速度不同
一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快。
參考資料來源:網路-雙精度浮點數
⑤ f和lf有啥區別
在c語言中f和lf的全稱是%lf 與%f,它們的區別如下:
1、所能表示數的范圍不同。
單精度浮點的表示範圍:-3.40E+38 ~ +3.40E+38,雙精度浮點的表示範圍:-1.79E+308 ~ +1.79E+308
2、有效數字位數不同。
單精度浮點數有效數字保證6位,部分7位,雙精度浮點數有效數字保證15位,部分16位。
3、代表的數據類型不同。
%f代表單精度浮點型數據(float),%lf代表雙精度浮點型數據(double)。在程序中處理速度不同一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快。
4、輸入不同。
%lf :%lf 輸入數據時要求是float類型。%f :%f 輸入數據時要求是double類型。
5、輸出不同。
%lf :double類型以%lf 格式輸出數據時不會自動轉成%lf 格式,會導致輸入值錯誤。%f :float類型以%f 格式輸出數據時會自動轉成%f 格式,不會導致輸入值錯誤。
主要特點:
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
⑥ c語言里%f跟%lf有什麼區別
由於精度的原因,輸出%lf和%f的數據不同,可能會造成錯誤。
主要有一下四點區別:
1、代表的數據類型不同
%f代表單精度浮點型數據(float),%lf代表雙精度浮點型數據(double)。
2、有效數字位數不同
單精度浮點數有效數字保證6位,部分7位,雙精度浮點數有效數字保證15位,部分16位。
3、所能表示數的范圍不同
單精度浮點的表示範圍:-3.40E+38 ~ +3.40E+38,雙精度浮點的表示範圍:-1.79E+308 ~ +1.79E+308
4、在程序中處理速度不同
一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快。
⑦ C語言里的%lf,%.2lf,%.2f是什麼意思
%lf 雙精度浮點型,也就是double型的格式,默認保留6位小數。
如:double a = 1.2; printf("%lf",a); //1.200000
%.2lf 同上,不過限制了,值保留2位小數。
如:double a = 1.2345; printf("%.2lf",a); //1.23
%.2f 表示單精度浮點型,也就是float型的格式。
如:float a = 1.2731; printf("%.2f",a); //1.27
⑧ c語言輸出浮點數最高精度是多少
1.雙精度浮點型數據用%lf輸出。因為double是8個位元組的,float是4個位元組的,%f 的格式就是4個位元組的,而 %lf 就是8個位元組的。 例如:printf("%lf\n",x);
2.short 佔用內存空間2個位元組,短整型數據用%d輸出 例如:printf("%d\n",a);
例:
#include <stdio.h>
int main()
{double x;
short int a;
printf("%lf",x); // 輸入double型
printf("%d",a); //輸入短整型
return 0;
}
⑨ C語言問題%f和%lf的區別
由於精度的原因,輸出%lf和%f的數據不同,可能會造成錯誤。
主要有一下四點區別:
1、代表的數據類型不同
%f代表單精度浮點型數據(float),%lf代表雙精度浮點型數據(double)。
2、有效數字位數不同
單精度浮點數有效數字保證6位,部分7位,雙精度浮點數有效數字保證15位,部分16位。
3、所能表示數的范圍不同
單精度浮點的表示範圍:-3.40E+38 ~ +3.40E+38,雙精度浮點的表示範圍:-1.79E+308 ~ +1.79E+308
4、在程序中處理速度不同
一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快。
⑩ c語言中比%lf精度更高的是什麼
%f
%f和%lf分別是float類型和double類型用於格式化輸入輸出時對應的格式符號。
其中:
float,單精度浮點型,對應%f.
double,雙精度浮點型,對應%lf.
在用於輸出時:
float類型可以使用%lf格式,但不會有任何好處。
double類型如果使用了%f格式可能會導致輸出錯誤。
在用於輸入時:
double 類型使用了%f格式,會導致輸入值錯誤。
float類型使用double類型不僅會導致輸入錯誤,還可能引起程序崩潰。
所以在輸入輸出時,一定要區分好double和float,而使用對應的格式符號。