1樓:銀河群峰之巔
7位有效數字的意思是,超過7位的就沒有意義了。你這個結果四捨五入到7位,你看看是多少。
你的數字會變是因為, 十進位是有限小數的數,轉到二進位可能是無限小數。就是。
2樓:網友
因為a不是,在電腦裡存的是2進位,轉成2進位會有誤差。
3樓:伏無
是的,在c語言中float是顯示小數點後六位小數,如果你想縮小的話那就在最後的printf(".2f",a);
至於點後面要多少你可以隨便更改。
至於說為什麼數字變小了呢,是因為計算機本來就不擅長對小數的處理,這有乙個精度的問題。
4樓:記住回憶
顯示小數點後的6位有效數字。
5樓:匿名使用者
float a;
a = ;改成這樣就行了,錯誤原因是a是float型別,預設為double型別,強制型別轉換資料會有損失。加上f轉換為double後就可以給a賦值了。
6樓:不書桃文墨
float資料。
機器內是2進位數,1位符號位。
8位指數位。
23位「尾數」位。
共32位。2進位數。
平時講有效數字。
是6~7位。
指10進位。
通常程式輸入的數是10進位,進入機器後要化成2進位,計算完又轉十進位輸出。
10進位到2進位,2進位到10進位。
轉換,有的數化不淨,有的數化得淨。
如同10進位分數化10進位小數,有的化得淨(例如4分之1,變,有的化不淨(例如。
3分之1,變。
10進位到2進位,2進位到10進位。
轉換,化得淨的效數字7位,化不淨的效數字6位,因為最後一位有舍入誤差。
例如:float
x,y;x=;//化不淨。
y=;//化得淨。
printf("x=%.8f
y=%.8",x,y);
輸出。
關於c語言 float 保留七位有效數字問題
7樓:哀碧春別楠
%f輸出格式的確是以6位小數輸出的。
但是計算機儲存小數,則存在有效數字這一說,7位有效數字指的是隻能保證7位的有效數字,如果輸入的有效數字多於7位,則不保證之後的位的數字的準確性。當然,你輸入的數能保證了準確性。
如果輸入的資料多餘七位有效數字,就會出錯。比如,輸出後則會出現小數部分不正確。
關於c語言 float 保留七位有效數字問題
8樓:網友
都有六位,預設的格式。
9樓:臥冬的雜貨鋪
單精度實型的意思就是小數點後面有六位啊,什麼佔一位的。
c語言中float有7到8個有效數字,為什麼呢?各位大神能否回答一下呢?
10樓:臺胤松乃
由於float的指數部分對應的指數範圍為-128~128,所以取值範圍為:
2^128到2^128,約等於。
精度(有效數字)主要看尾數位:
float的尾數位是23bit,對應7~8位十進位數,所以有效數字有的編譯器是7位,也有的是8位。
在c語言中關於float型有一處不明:就是單精度的有效位數是7位,為什麼在下面的例子中這8位都是準確的呢?
11樓:網友
它是說保證7位準確,並不是說第8位就肯定不準確。
12樓:網友
type exponent length mantissa length
float 8 bits 23 bits浮點數的有效位:23bits,合24位。
其解像度為:1/(2^24)=,000,059,604644775390625,000,06
即浮點數可表示的最小數的單位為;
其他的數都由 * 2^x來表示的,12345678920
12345678848= *2^x
具體計算略,原理如此。
13樓:網友
因為計算機儲存浮點數時,是把數看作a*2^b這樣的形式,不是以10為底數,而是以2為底數。即將數轉換成以2為底的「科學計數法」的形式,再由這個形式反轉換成10進位形式,但資料又有位數限制,所以有些數轉換成二進位計數法形式後位數超出了限制的位數,那麼轉換回來時得到的數就會與原數有偏差,不同的數這個偏差是不同的,有可能在小數點後第7位,也有可能在第8位,也有可能在其他位數,但能保證第6位之前是正確的。
c語言中float型變數有效數字是七位,怎麼看乙個數的有效位數,和數學上的有效位數是乙個概念嗎?
14樓:網友
不是,變數內在給的是八位的表示,這種型別有正負,所以第一位表示正負,所以有效數字是七位,無符號型有效數字是八位,還有長整型,他是十五位有效數字。
15樓:網友
浮點型的數是 一定數量的位元組連在一起構成的位:前面幾位為指數,後面幾位為尾數(即是小數)。
因為數的位數有限,所以,數總有一定的精度。
float型,4個位元組 32位表示,如果前面8位表示指數的話,尾數只能用24位表示(包含一位符號位)。24位所能表示的小數的精度是2^(-22)左右,就差不多是十進位的7~8位了。再後面由於截斷誤差,七八位以後的數字已經無意義了。
double型,8位元組,64位,前面11位是階碼,後面53位是尾數(包含一位符號位)。所以double型的精度就高很多了,精度是 2^(-52) 左右。
c語言中double和float它們儲存時分別佔據多大的記憶體空間
c標準規定 float 不少於 4個位元組,double 不少於 8個位元組。具體的你在所在平臺上用這個試試就知道了 sizeof int sizeof double sizeof float double 中文譯為雙精度浮點數,一般稱雙精度數,它在記憶體中佔用8個位元組 位 bit 的空間 flo...
c語言中float和double有什么區別用法
c語言中,float和double都屬於浮點數。區別在於 double所表示的範圍,整數部分範圍大於float,小數部分,精度也高於float。舉個例子 圓周率3.1415926535 這個數字,如果用float來表示,最多隻能精確到小數點後面的6位。而double大約能精確到小數點後面的15位左右...
c語言中什麼是實型數,C語言中什麼是實型數?
c語言中的實型抄資料是指帶有小數襲 的數bai。實型資料分兩類 du單精度和雙精度float和double在內zhi存中dao佔用的位元組 float佔用4個位元組,double佔用8個位元組。整型的變數是沒有小數點的,實型是有小數點的整型你可以理解為整數,5 5就是整型常量。不是實型包含整型,實型...