1樓:路路通
,浮點數的概念是相對於定點數的,浮點數是精度可變的一種表示法,其表示的數越大,其精度就越低,這也剛好滿足科學上的需要。
單精度浮點數是 32 位的,格式如下:
域: 符號位 指數(階碼) 尾數。
長度: 1 8 23
二進位制:0 00000000 00000000000000000000000
可以看出,這其中真正用來表示原來資料的也就是 23 位的尾數部分,由於計算機內部的誤差以及進位制轉換的問題,這 23位二進位制 換算成 十進位制 後有效數字也就 6-7 位了,其中的詳細運算規則請檢視該標準。
2樓:農靖海
你看看 ieee754 標準就明白了,浮點數的概念是相對於定點數的,浮點數是精度可變的一種表示法,其表示的數越大,其精度就越低,這也剛好滿足科學上的需要。
單精度浮點數是 32 位的,格式如下:
域: 符號位 指數(階碼) 尾數長度: 1 8 23二進位制:
可以看出,這其中真正用來表示原來資料的也就是 23 位的尾數部分,由於計算機內部的誤差以及進位制轉換的問題,這 23位二進位制 換算成 十進位制 後有效數字也就 6-7 位了,其中的詳細運算規則請檢視該標準。
浮點型資料的有效數字
3樓:gta小雞
浮點數的有效數字是6-7位,包括所有數字,和小數點在哪個位置無關,這也是稱為浮點數的原因之一。
六位有效數字。
七位有效數字。
什麼叫浮點型的有效數字
4樓:匿名使用者
浮點型一般指帶有小數的數字!float(浮點型)!比如說1.
2345678,輸出後事說明:1.
有效數字是7位2.對第八位進行了四捨五入,所以第八位是有效的注意:有效數字和有效不是一個概念!
float 型數值有效位數為6位是什麼意思?
5樓:小小草根
float 為單精度浮點型,有效數字為6~7位;double 為雙精度,有效數字為15~16; 但他們在輸出時,小數點後都有6位小數。例如。
c中的float和double的有效數字和精度各是多少?
6樓:寫在楓葉上的故事
float有效數字位為6 – 7位,位元組數為4,指數長度為8位,小數長度為23位。取值範圍為 。
double有效數字位為15 – 16位,位元組數為8,指數長度為11位,小數長度為52位。取值範圍為。
7樓:轉基因
float和double是有ieee標準的,不是c語言定的,其它語言也一樣。
double型90%的情況下有效位是16位的10進位制資料是對的。來一段lua程式:
local b= 9007199254740991
print("b=".d", b))
for i=1,10 do
print("i=".i.."b+i=".d", b+i))-列印的全是偶數。
endfor i=1,10 do
print("i=".i.."b-i=".d", b-i))-列印正確。
end由此可見,大於9007199254740991(2進位制52位最大的數),從2^53開始誤差就大於1。
8樓:青山鬱
float double
二進位制有效位數 24位 53位。
十進位制有效位數 7位 15位。
9樓:
準確來說是2^-15.
double尾數佔52位,2^-52=,即2^-16,所以能夠保證所有的15位精度。
10樓:匿名使用者
float是32位,double是64位。
float32位中,有1位符號位,8位指數位,23位尾數為。
double64位中,1位符號位,11位指數位,52位尾數位。
取值範圍看指數部分。
float是有符號型,其中,8位指數位,2^8=(-128—127),因此實際的範圍是-2^128—2^127,約為。
同理double範圍約是,樓主可以自己按下計算器試試看,印象深些。
精度是看尾數部分。
float尾數位23位,2^23=,7位,所以不同的編譯器規定不同,有些是7位,有些8位。
double尾數52位,2^52=,15位,所以double的有效位數是15位。
這是我個人的一點看法,純手打,希望能幫到你。
11樓:自我程式設計
由於預設小數最多顯示6位,我這裡整數6位 再強制讓輸出小數點後14位 共20位。
見程式float可靠資料 算上整數部分只有7位 而double 有16位。
12樓:雄雄兒
樓上的答案基本上是對的,不過還是有點小瑕疵計算機中的浮點數用的是ieee754標準,它的規定中:
1.階碼用的是8位的移碼,但是偏移用的是127,而不是128,並且全0和全1的階碼有特殊含義,所以階碼的實際取值範圍是[1,254],然後再減去127得[-126,127],而不是樓上說的[-128,127]
2.尾數部分是23位顯示儲存,實際上,為了多一位精度,它有一個隱含的1做為小數點前一位數字,這就是科學計數法,即如果尾數為1100,實際上是代表,所以尾數實際上是24位。
當然這些都不太影響樓上說的精度的啦2^24 約為10^(24*log2)=10^7,所以有效數是7位。
大家可以去查一下ieee 754浮點數標準,會更清晰些。
float 浮點型變數 不是保留八位有效數字嗎 為什麼這個有10位
13樓:聽不清啊
這是無意義的。
從1年期的就可以明顯看出的。
應該是。可是它的輸出顯示為。
實際上,float能夠保證的精度是7位有效數字,當只有一位整數時,預設的輸出6位小數是正確的;但是整數部分超出1位時,仍輸出6位小數是無意義的。在給出的資料中,輸出3位小數是最多的了。更多位數的小數就不能保證資料的正確性了。
14樓:
標頭檔案的部分**。
#define dbl_dig 15 //雙精度小數點後15位#define flt_dig 6 //單精度小數點後6位#define ldbl_dig 19 //長雙精度小數點19頁重力與質量的關係: g = mg合力公式: f = f +
關於c語言浮點數問題,c語言關於浮點型資料範圍的問題
標準c語言支援的浮點數符合ieee格式,是二進位制浮點數,並不是一個位元組存放一個十進位制小數位的。關於ieee浮點數,可以參考這裡 至於這裡的輸出問題,如ls所說,是printf預設輸出問題。如果使用 f和 lf格式控制符輸出浮點數,預設輸出保留6位十進位制小數,自動四捨五入。用 nf可以控制輸出...
請問浮點型資料在計算機是怎麼儲存的
月似當時 對於浮點型別的資料採用單精度型別 float 和雙精度型別 double 來儲存,float資料佔用32bit,double資料佔用64bit。無論是單精度還是雙精度在儲存中都分為三個部分 1 符號位 sign 0代表正,1代表為負。2 指數位 exponent 用於儲存科學計數法中的指數...
什麼是處理器的浮點運算
作為主cpu主要從事的運算,都是在許可範圍內儘可能逼近的近似值,相當多時候乘法比加法快,沒想到吧?而fpu這主要從事浮點運算,以前稱之為協處理器,486以前並不包含在cpu中 8086 8087,80286 80287,80386 80387 80386dx,80486sx 80487 80486d...