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位
可以參考:http://hi.baidu.com/yu_xiyan/blog/item/461482dbb32d0c6dd1164edf.html
寫的比較清楚
14樓:匿名使用者
不管float,double,輸出時小數點後預設都是6位
不過不知道 你的double怎麼是7位。。。
15樓:革蓉竇和悅
答案是對的.什麼叫有效?單精度七位說明前七位是正確的而後面電腦會隨機輸出.雙精度一樣的道理
c語言中printf輸出float和double都用f麼scanf又
答 1.c語言中printf輸出float和double都可以用 f,而double型資料還可以用 lf。2.scanf當中若是對雙精度的變數賦值是必須是 後跟lf,而printf當中可以用 f也可以用 lf沒有限制。拓展資料 c語言中的格式控制符 d十進位制有符號整數 u十進位制無符號整數 f浮點...
c語言中float和double的區別
隨便什麼名啦啦 區別 1 精度不一樣,float是單精度,double是雙精度 2 表示小數的範圍不一樣,double能表示的範圍比float大 3 double在記憶體中,佔8個位元組,float在記憶體中,佔4個位元組。float 浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度...
在c語言中如何輸出空格,在C語言中如何輸出空格
向日葵一樣暖 c語言輸出空格的語句為printf 為轉義字元,用printf 是不能輸出空格的。printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。printf 函式的呼叫格式為 printf 格式化字串 參量表 格式輸出,它是c語言中產生格式化輸出的函式 在 stdio....