當前位置:首頁 » 編程語言 » c語言double精度

c語言double精度

發布時間: 2022-11-26 09:17:05

1. C中的float和double的有效數字和精度各是多少

float和double是有IEEE標準的,不是c語言定的,其它語言也一樣。
double型90%的情況下有效位是16位的10進制數據是對的。來一段lua程序:
local b= 9007199254740991
print("b="..string.format("%d", b))
for i=1,10 do
print("i="..i..",b+i="..string.format("%d", b+i))--列印的全是偶數
end
for i=1,10 do
print("i="..i..",b-i="..string.format("%d", b-i))--列印正確
end
由此可見,大於9007199254740991(2進制52位最大的數),從2^53開始誤差就大於1。

2. c語言中double是什麼意思

double是C語言的一個關鍵字,代表雙精度浮點型。

3. c語言數據類型為何是雙精度型

1、雙精度,單精度指浮點型數,
雙精度 叫 double 型, 單精度 float 型。
double 型 用 64位2進制存放,float 型 用 32位2進制存放。
所以,兩種數 的 最大和最小 數值范圍 不同,數的有效數字個數不同,也就是精度不同。

2、double 型 最大數值 1.7976931348623158e+308
最小正數數值 2.2250738585072014e-308
有效數字 十進制 15 位。
float 型
最大數值 3.402823466e+38F
最小正數數值 1.175494351e-38F
有效數字 十進制 6-7 位。
詳細定義 見編譯器 頭文件 float.h

4. C語言double型精度錯誤

你這個說法錯了:
「按理說double型數據長達8個位元組,可以精確到小數點後15位」
應該是「double型數據可以保證15位有效數字」。但是其整數部分已經佔了8位,所以,最多隻能有7位小數是可以保證精度的。

5. double在c語言中的意思是什麼

double在這里是指將變數i和變數s定義為雙精度實型變數。也就是說:賦給這兩個變數的值將以雙精度實型格式存儲在內存中。

注意事項

1、類型說明符和表達式都必須加括弧(單個變數可以不加括弧),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之後再與y相加了。

2、無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的數據長度進行的臨時性轉換,而不改變數據說明時對該變數定義的類型。

數據類型

double(雙精度浮點型)是計算機使用的一種資料型別。比起單精度浮點數(float),double(雙精度浮點數)使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進制的15或16位有效數字,負值取值范圍為 -1.7976E+308到 -4.94065645841246544E-324,正值取值范圍為 4.94065645841246544E-324到 1.797693E+308

以上內容參考:網路-double

6. c語言中為什麼float型自變數的精確度是6到7位,double型的精確度是15到16位

主要是這兩種變數佔用的內存數不同,float 型4個位元組,32位;double型8個位元組,64位。它們在內存中是按科學計數法來存儲的,而且float和double的精度是由尾數的位數來決定的:
①對於float 型浮點數來說,符號位佔1位,指數位佔8位,尾數位23位,則有2^23 = 8388608,一共七位有效數字(能保證的為6位),即float的精度為6~7位有效數字。
②類似的對於double 型浮點數來說:尾數位52位,2^52= 4503599627370496,共16位,即double型數的精度為15~16位。

7. C語言中的double是最多多少位

雙精度實數,佔用位元組8。

有效數字15~16(因為二進制轉十進制問題)。

數值范圍-1.7*10負308次方~1.7*10的308次方。

當有效數字全部是整數時,即整數有15~16位。

C語言中,輸出double類型(雙精度實型)以及float類型(單精度實型)時,默認輸出6位小數(不足六位以 0 補齊,超過六位按四捨五入截斷)。double a = 1;printf("%lf ", a);輸出會是:1.000000

比如計算平均分,一到兩位小數就足夠了。可是有時六位又不夠,需要更多位小數,比如計算高精度平方根。這時可以用printf的格式控制。如果要輸出n位小數,那麼可以用%.nlf的格式。其中n為數字。

所在函數庫為【ctype.h】

int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否則返回0

int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或數字('0'-'9')

返回非0值,否則返回0

intisascii(int ch) 若ch是字元(ASCII碼中的0-127)返回非0值,否則返回0

intiscntrl(int ch) 若ch是作廢字元(0x7F)或普通控制字元(0x00-0x1F)

以上內容參考:網路-C語言函數

8. c語言中double精度有幾位小數,float有幾位小數

loat為單精度,佔4位元組(32位)的內存空間,它的數值有效范圍是-10的38次方到10的38次方,只表示7位有效數字。而double為雙精度,8位元組,正負10的308次方之間,能精確到16位。這應該就是他們的的最基本的區別吧。。。

9. C語言中double要輸出幾位小數

1.
C語言中double默認輸出
6
位小數。
2.
如果要控制輸出小數位數,可以格式化輸出。
printf("%.3lf
",
d);

//
"%.3lf"
.3
則是輸出
3
位小數
printf("%.4lf
",
d);

//
"%.4lf"
.4
則是輸出
4
位小數

10. double在c語言中的意思是什麼

double是C語言的一個關鍵字,代表雙精度浮點型,佔8個位元組內存空間,其數值范圍為「1.7E-308~1.7E+308」,雙精度完全保證的有效數字是15位,16位只是部分數值有保證。

C語言中,float和double都屬於浮點數。區別在於:double所表示的范圍,整數部分范圍大於float,小數部分,精度也高於float。

舉個例子:圓周率3.1415926535 這個數字,如果用float來表示,最多隻能精確到小數點後面的6位。而double大約能精確到小數點後面的15位左右。具體精確到幾位,跟所用的編譯器有關,但是各個編輯器編譯器之間,也是相差不大的。

至於整數部分,float表示的整數部分的范圍,就已經夠大了,能表示到萬億級別,已經大到沒邊了。而double所表示的整數范圍,大到更沒邊了。實際開發中,除了個別高精領域,基本上,使用float就足夠了。

熱點內容
系數參數配置什麼意思 發布:2025-01-17 00:34:03 瀏覽:755
台灣免費伺服器雲主機 發布:2025-01-17 00:29:07 瀏覽:870
c語言sizeofchar 發布:2025-01-17 00:29:01 瀏覽:469
安卓手機的雲備份在哪裡能找到 發布:2025-01-17 00:14:12 瀏覽:472
詐騙的腳本 發布:2025-01-16 23:51:27 瀏覽:315
電腦配置有點低怎麼玩和平精英 發布:2025-01-16 23:46:14 瀏覽:819
ipfs分布式伺服器是什麼幣種 發布:2025-01-16 23:32:29 瀏覽:992
android動態icon 發布:2025-01-16 23:03:12 瀏覽:605
優酷電腦緩存在哪 發布:2025-01-16 22:58:29 瀏覽:298
進口途銳哪個配置好 發布:2025-01-16 22:35:24 瀏覽:962