2012-11-15 22 views
1
int main() 
{ 
float MarysAge; 

MarysAge = (int) 19.32; 
printf("Mary is %f years old\n", MarysAge); 

return 0; 
} 

爲什麼這個輸出在最後有6個0?試圖幫助一個朋友,但是,我不知道C那麼好,任何幫助表示讚賞=)。printf for C%f離開小數點後的0 0

輸出=瑪麗是19.000000年老

+0

我想這是默認值。你有多少人想要? – chris

+1

不確定我不得不問我有多少朋友想要...我認爲他們更多的只是尋找爲什麼有這麼多的0的大聲笑 – Structures

+2

那麼,你可以看看[參考](http://en.cppreference .com/w/c/io/fprintf)以瞭解如何更改精度。 – chris

回答

4

我誤解了你的問題。點之後

可以如下進行控制的位數...

printf("Mary is %.2f years old\n", MarysAge); 
+1

本身,「使用%d而不是%f」這個句子可能會被解釋爲「使用'printf(」瑪麗是%d歲以上\ n「,MarysAge);'where 'MarysAge'是'float'類型。這不會是很好的建議。 –

+0

@PascalCuoq同意。一旦我重讀了這個問題,我就重新回答了我的答案:) –

2

%F的默認精度爲6,輸出6個號碼。 And(int)捨去。 首先19.32在(int)上變爲19, 然後在%f上變成19.000000。

相關問題