2016-06-08 211 views
-2

在一個問題中,我收到了這樣的輸入,我需要按原樣輸出它們。
例如我將收到5.0作爲輸入,並需要打印5.0作爲輸出,
正在打印5.我用setprecision未工作
我認爲這個東西是 對於像2.0,3.0,4.0這樣的數字來說,它是在輸入自己的時候四捨五入。 請幫幫我。如何獲取float值並將其作爲C++打印出來(5.0爲5.0)

見我的代碼:

float n=5.0 

// n*=1.0; 
cin>>n; 
cout<<setprecision(16); 
cout<<n;//its printing 5 here 

/* 
I also tried 
printf("%f",n); 
//but its printing 5.000000 
I can't use printf("%.1f",n)<br> 
as input can be 5.234 or 4.5687 so making %.1f will not work for others 


*/ 
+2

'5','5.0','5.00','5.000'有什麼區別?在數學上,什麼都沒有。它應該如何知道你想要什麼?你是否特意表示你總是想要1位小數?看起來不是。你想要所有非'0'小數位嗎?似乎也不是那個。 (這是在我們甚至解決不同二進制和十進制表示的問題之前)。如果你想要的是用戶輸入的內容,也許你真的想要一個'std :: string'? – BoBTFish

+0

另外使用'setw(4)'。 –

+0

一起使用'std :: fixed'。 – songyuanyao

回答

0

您可以使用std::fixed。這將像printf那樣強制打印所有精度小數。這意味着,5現在印刷5.000000,如果你不介意多一個不必要的0

如果你很介意,我並不認爲有很多的解決方案,但與ostringstream或寫入字符串在內存sprintf,然後在".0"附加如果你不能找到一個點,並打印該字符串。

相關問題