printffn7的輸出結果為什麼是

時間 2021-12-23 14:37:49

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沒賦值呀。