為什麼實型資料可以有8位有效數字??

時間 2025-01-24 15:15:09

1樓:網友

實型(float)資料預設的小數點後是6位。可以修改。

比如:printf("a=%。2f",a)就是小數點後2位,printf("a=%",a)表示輸出7位,小數點算一位,小數也算一位,兩位小數,不足7位的前面補空格(printf("%",輸出 前面有3個空格))

還有(int型):printf("a=%5d",a)表示輸出5位,不足5位的前面補空格 printf("a=%",a)表示輸出5位,3個數字,前面2個空格,數字不足3位的前面補0 printf("a=%.3d",a)表示輸出3個數字,數字不足3位的前面補0

2樓:可康泰卿媚

你看看。ieee754

標準就明白了,浮點數的概念是相對於定點數的,浮點數是精度可變的一種表示法,其表示的數越大,其精度就越低,這也剛好滿足科學上的需要。

單精度浮點數是。

位的,格式如下:

域:符號位。

指數(階碼)

尾數。長度:

二進位:0可以看出,這其中真正用來表示原來資料的也就是。

位的尾數部分,由於計算機內部的誤差以及進位轉換的問題,這。

23位二進位。

換算成。十進位。

後有效數字也就。

位了,其中的詳細運算規則請檢視該標準。

實型資料的取值範圍和有效數字是什麼意思

3樓:網友

有效數字的含義是表示數的精度,比如float型能可靠表示6位十進位數,多於6位以後的數就不都可靠了(誤差過大不可接受,尤其對於後繼計算產生的誤差急速增加);而double型能可靠表示15位十進位數,15位以後的數也就不可靠了。

取值範圍是能表示的最小值和能表示的最大值之間的乙個數域,超出這個數域的值根本就不能表示了,就像char型能表示-128~+127之間的數,小於-128和大於+127的數就不能表示了(表示不了、超出所能表示的範圍,就像用兩位數表示幾百幾千——除非新增運算子號)。

有效數字肯定都是取值範圍之內的數。

4樓:匿名使用者

實型變數 實型變數分為兩類:單精度型和雙精度型。

其型別說明符為float 單精度說明符,double 雙精度說明符。在turbo c中單精度型佔4個位元組(32位)記憶體空間,其數值範圍為,只能提供七位有效數字。雙精度型佔8 個位元組(64位)記憶體空間,其數值範圍為,可提供16位有效數字。

實型變數說明的格式和書寫規則與整型相同。

例如: float x,y; (x,y為單精度實型量)double a,b,c; (a,b,c為雙精度實型量) 實型常數不分單、雙精度,都按雙精度double型處理。

實型變數的float型的有效數字為什麼最多隻有七位?

5樓:匿名使用者

float實型分單雙精度、單精度有四個位元組、共32位、單有效位只有七位!雙精度有8個位元組、共64位、同樣有效位也只有16位、且有些c程式預設小數位只保留6位有效數字!

為什麼單精度實型是32位而有效位數是7位?

6樓:匿名使用者

乙個單精度浮點數佔用32位。但浮點數與整數不同,其所能描述的數值範圍遠遠大於後者。因為它是採用科學記數形式來表達數值的,即[+/-]的形式。

也就是說是零點几几幾乘上10的多少次方的形式。這樣,在32位中,1位用來作符號位,指數部分需要6個二進位位,從而可以表達10的-31次方直到10的正32次方。這樣只剩下25個二進位位。

2的25次方是乙個8位數字的十進位數,因此最大隻能達到7位有效數字。

為什麼雙精度有16位有效數字,單精度有7位?

7樓:娛樂小八卦啊

浮點數7位有效數字。雙精度數16位有效數字。

浮點數取值範圍:負數取值範圍為 到 ,正數取值範圍為 到 。

雙精度數取值範圍:負值取值範圍 到 ,正值取值範圍為 到 。

浮點數的精度取決於尾數部分。尾數部分的位數越多,能夠表示的有效數字越多。

單精度數的尾數用23位儲存,加上預設的小數點前的1位1,2^(23+1) = 16777216。因為 10^7 < 16777216 < 10^8,所以說單精度浮點數的有效位數是7位。

雙精度的尾數用52位儲存,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以雙精度的有效位數是16位。

8樓:網友

float和double的精度是由尾數的位數來決定的。

浮點數在記憶體中是按科學計數法來儲存的,其整數部分始終是乙個隱含著的「1」,由於它是不變的,故不能對精度造成影響。

float:2^23 = 8388608,一共七位,這意味著最多能有7位有效數字,但絕對能保證的為6位,也即float的精度為6~7位有效數字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度為15~16位。

c語言實型資料的舍入誤差

9樓:網友

float 只有約7-8個十進位數位的有效數字。

輸出值中只有最高7-8個數位是準確的。低位上的加法不在有效範圍內。

要更精確就用double,也只有約14-18個有效數位。

浮點型別只用來記錄近似值,不能用來記錄精確值。

10樓:

float只保證6位精度,再多了就是機器隨機填上去的。這幾乎在所有教科書談及實型資料的精度時都有論述。

54題,float不是只能有六位有效數字嗎,選項怎麼是七位有效數字

11樓:網友

記住float是保留6~7位有效數字,在顯示時總是輸出到小數點後六位,但是這六位並不代表全是有效的。比如a=輸出的結果可能是懂了吧。

f輸出格式的確是以6位小數輸出的。

但是計算機儲存小數,則存在有效數字這一說,7位有效數字指的是隻能保證7位的有效數字,如果輸入的有效數字多於7位,則不保證之後的位的數字的準確性。當然,你輸入的數能保證了準確性。

如果輸入的資料多餘七位有效數字,就會出錯。比如,輸出後則會出現小數部分不正確。

12樓:網友

樓主 這是什麼書啊。

c語言為什麼float型資料可以大到3.4*10^38而有效數字只有7位

13樓:金色潛鳥

float型資料 共有2 進位32位, 用指數形式 表示 數的值。

1位:數的正負號位, 24位 2 進位 尾數,7位 2 進位指數,指數最小−126 最大+127

見 ieee-754 規定。

2進位折算到10進位,有效數字只有7位。

14樓:劉佳輝

換成double就好了,flotat,小數點是7點。

15樓:網友

恰好相反,正是因為他的範圍可以大到所以有效數字才只有7位,float作為乙個4位元組的實資料型別,能儲存的資訊是有限的,表示範圍的大小與表示數字的精度兩者是不能兼得的,表示數字範圍大,相對的精度就要受損失,如果表示範圍小一些,精度就可以增大一點,float型別是綜合考慮範圍,精度以及運算等因素而定的乙個型別。

如果你真的感興趣,建議瞭解一下float型別是如何表示乙個實數的,追問我也可以,不過如果你只是學c/c++解決一些基礎問題,以後不經常用的話,那也沒必要關心這些,瞭解這些其實也沒多大意思。

近似數0 308萬精確到什麼位有有效數字

滴血薔薇 有效數字 從一個數的左邊第一個非0數字起,到末位數字止,所有的數字都是這個數的有效數字。就是一個數從左邊第一個不為0的數字數起到末尾數字為止,所有的數字 包括0,科學計數法不計10的n次方 稱為有效數字。簡單的說,把一個數字前面的0都去掉,從第一個正整數到精確的數位止所有的都是有效數字了。...

為什麼說「95」開頭的8位數電話不要接

這很撩妹 根據 電信網編號規劃 2017年版 報告顯示,95號段號碼規劃用於跨省 全國範圍內統一使用的客戶服務短號碼 電信業務接入號碼等。950 951 952三個號段是批覆給全國性的呼叫中心企業使用的,953 954 955 956是批覆給全國性的客戶服務中心使用的。更讓人心煩的是,還沒辦法遮蔽。...

8位二進位制補碼錶示數的範圍是多少為什麼

霜霜霜霜霜橙 八位二進位制正數的補碼範圍是0000 0000 0111 1111 即0 127,負數的補碼範圍是正數的原碼0000 0000 0111 1111 取反加一 也可以理解為負數1000 0000 1111 1111化為反碼末尾再加一 所以得到 1 0000 0000 1000 0001,...