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,...