c語言中float輸出的結果從左往右有效數字是6位,但是我編寫這個小程式後怎麼就只有3位有效?望高手解答

時間 2021-09-11 22:24:00

1樓:

想要搞清楚這個問題,你需要了解float型別在記憶體中的儲存結構

符號位|指數|尾數

78.88在記憶體中的結構為

01000010 10011101 11000010 10001111

第一位為符號位,0

後面八位為指數位10000101

最後23位為尾數0011101 11000010 10001111

0,10000101,1.0011101 11000010 10001111

指數需要減去127才是真正的指數

10000101 - 01111111 = 00000110,是10進位制的6

1.0011101 11000010 10001111*(2^6)

=1001110.111000010 10001111

整數部分1001110轉換10進製為78

小數部分0.111000010 10001111轉換10進製為0.87999725341796875

所以你在輸出是按小數點後六位輸出為78.879997

2樓:

有效數字6位, 指 78.8799 ,有效數字精度到 6位,它含截斷誤差,截斷誤差 在第7位。

它不等於 78.88; 是因為 10進位制化2進位制,再2進位制化10進位制。引入了截斷誤差。

3樓:ac苗樹

單精度浮點型有效數字是7位 後面一般補齊6位小數

樓主用的是vc6.0 吧 用tc2.0 試試 或許和軟體對讀資料的處理有關 具體原因我也不明白 幫不了你

4樓:匿名使用者

zy im db haha

這個**的輸出結果為什麼只有六位小數啊

5樓:金色潛鳥

你可以自己定義要多少位小數,

例如:格式用 %.12lf 輸出的小數位 就是12 位。

你的編譯器 預設 %lf 輸出 6 位。

c語言 float型別保留幾位啊 怎麼確定

6樓:徜逸

float型別預設保留小數點後6位,若是要輸出一位或者其他位數,可以按照以下形式進專行輸出:

printf("%.(這裡輸入屬要輸出的位數)f",x);

如輸出一位:printf("%.1f",x);

c語言浮點型別的精確位數

例項#include

#include

int main()

7樓:匿名使用者

在c語言中來,float型別的資料預設保源留小數點後6位,不足6位的以0補齊,超過6位按四捨五入截斷。最多能保留7位有效數字,能絕對保證6位有效數字。

詳細可參考博文:網頁連結

**中的2.0其實就是2.000000,3.0其實就是3.000000,float型別的預設保留小數點後6位;

100/40結果應該是2.5,書中的2.0是側重和2.

5做區別,不是和2.000000做區別。同樣,下面的3.

0是要和3.14159做區別,而不是要和3.000000做區別。

所以,**中的2.0其實就是2.00000,3.0其實就是3.000000。

8樓:科技數碼答疑

float(也就是單精度浮點),預設有效位數7位。圖中的2.000000,有效數字就是7位

單精度,float,32位,有效位數為7位

雙精度,double,64位,有效位數15位

9樓:匿名使用者

%.2f就是保留小數點後兩位。數字代表保留幾位。

10樓:匿名使用者

i和j都是int型,兩個int型相除結果保留整數部分,即2,但是f是float型,結果保留6位

11樓:鄭原俊

以float型輸出時是保留小數點後6位

c語言中浮點數float和double輸出的問題

12樓:佼素花東倩

如果想讓結果更精確的話就選double,如果結果只要求小數,精確度不要那麼高,選

float就行了,小數點後兩位的輸出結果,double是首選

13樓:匿名使用者

不要多想。來

只要記得

float的尾數源位是23bit,對應7~8位十進位制數,所以有效數字有的編譯器是7位,也有的是8位

可以參考

寫的比較清楚

14樓:匿名使用者

不管float,double,輸出時小數點後預設都是6位

不過不知道 你的double怎麼是7位。。。

15樓:革蓉竇和悅

答案是對的.什麼叫有效?單精度七位說明前七位是正確的而後面電腦會隨機輸出.雙精度一樣的道理

C語言中printfn 輸出是什麼結果?print

郎秀英費緞 printf n 是個換行,n是轉義字元,表示換行printf d a 完整應該這麼用,a是你要輸出的變數名。d是個佔位符,它為一個int型資料站位,一個printf中可以有多個佔位符。如 printf d d f x,y,z f也是佔位符,它為float型資料站位,佔位符的對應關係是順...

c語言中怎麼輸出特殊字元,C語言中怎麼輸出一個特殊字元

include main 你腦袋是方的嗎 不會這樣啊! include int main printf c t chr 好像沒有問題哈 手機上網,沒有測試 我剛剛去找了一下 ascii的表 以及擴充套件 ascii 255 的那個都沒有你要的那個符號 我想了一下 你那個符號應該不是 ascii但以前...

c語言中如何輸出各種常量,C語言中如何輸出各種常量

風若遠去何人留 c語言輸出常量和輸出變數是相同的。均可以用printf帶各種格式符號執行輸出。常用的型別包括 1 整型,int,使用格式為 d 2 短整型,short,使用格式為 h 3 長整型,long,使用格式為 ld 4 字元型,char,使用格式為 c 5 字元指標型,char 使用格式為 ...