1樓:尚且無憂
" f "的意思是:以小數形式輸出實數,小數後面保留六位小數
2樓:風若遠去何人留
printf("%f\n",7)
的時候,%f這個格式用於輸出浮點數,也就是float型別而7這樣的數字,在系統中預設為整型
所以傳過去的也是7的整型值,16進製為0x00000007這個是出現問題的原因 解決方法很簡單
使用正確的格式 比如printf("%d\n", 7);
如果一定要用%f 那麼讓系統知道你的7是float型的。 具體的有兩種方法
1) printf("%f\n",7.0); 帶上小數部分,就預設為浮點型了
2) 強制型別轉換 printf("%f", (float)7);
你可以試一下
3樓:匿名使用者
你這裡輸出的7是個值而不是變數名。
應該這樣:
int temp = 7;
printf("%\n",temp); //printf函式中引數不能也具體值
4樓:忘卻百年憂
7不能做位址,要輸出7直接printf(「7");
或者float a=7;printf("%f\n",a)
在c語言裡,如果定義變數時int型,但輸出是用%f,為什麼結果是0.000000
5樓:匿名使用者
-18的內部表示如果看作是float,是個很小的數
所以輸出的是0.000000
一般不這樣寫,用%d,資料要對應
6樓:匿名使用者
在輸出時如果把%後面的字母用錯,則輸出的結果都是0. 當然如果是double 和float 等則會輸出為0.000000 小數點後預設為6位小數
7樓:復聯鋼鐵俠
這和資料在計算機中的儲存有關,建議去csdn看一看,是有這方面的博文的。
8樓:匿名使用者
因為%f是針對double和float型別的,預設是精確到小數點後面6位
9樓:匿名使用者
%f 是格式刷,它指定輸出的格式!
%f是指定浮點型輸出,所以把原來的int型轉化成了浮點型,即輸出0.000000
10樓:龍嘯天風
你要看清楚浮點型能表示的範圍。。
c語言問題:為什麼把整數以%f格式輸出是0.000? 10
11樓:匿名使用者
1073741824恰好是0x40000000。如果硬解讀為浮點數,那麼它的尾數為零,自然對應的數值就是0。
參考:浮點數儲存格式
12樓:匿名使用者
這串**本身是錯的吧,編譯都過不了
為何用%f格式輸出的a.f是0.000000,為什麼不是97.0000000?
13樓:匿名使用者
97是00000000000000000000000001100001,
按float讀取,就是乙個接近於0的數字。
14樓:金色潛鳥
數值太小,用 %e 格式輸出 就不是 0 了。
聯合體是共享記憶體。
也就是說 i,ch, f 用 同乙個記憶體位址。
a.i=97; 就是在這個地方按 整型 數記憶體格式 存入 10進製數 97。
printf("%f",a.f); 把記憶體資訊 按 float 數記憶體格式 讀出來 而輸出。
f 等價於: *(float *) &i);
*****=
#include
union u;
main()
輸出:1.359260e-043
1.359260e-043
15樓:國文店鋪
printf("%f",a.f);應該是printf("%f",a.i);吧,,你f沒賦值呀。