2016-04-07 13 views
-2

プログラミングコンテストでは、私の出力をこのように印刷する作業がありましたが、正しい方法を見つけられませんでした.C++でこれを行うにはどうすればよいですか?二重変数で、このパターンや書式に従う必要があります出力をC++で四捨五入して出力する

出力が0.0034567であるとすると、出力は「3.457 3」になります。

出力を0.3034567とすると、出力は「3.034 1」になります。

+6

'場合(出力== "0.0034567")はstd :: coutの<< "3.457 3" を使用し、桁の一定数に切り捨てるためにTRUNCを使用することができます:else if(出力== "0.3034567")std :: cout << "3.034 1" '。 –

+3

ほとんどのプログラミングコンテストでは、どのように問題を解決することができるのか、他の人にあなたのためにそれを解決するように頼むことはできません。 –

+0

あなたがこれまでに持っているものを示してください – David

答えて

-1

あなたは の#include < cmath>

double output = 0.0034567; 
int count=0; 

while (output<1) 
{ 
    output *=10; 
    count++; 
} 

output*=1000; 
int modul =(int) output%10; 
if (modul>=5) 
    output++; 

output /=1000; 
output = trunc(1000 * output)/1000; 
std::cout << output << " " << count << endl; 
+0

'while(出力<0)'が間違っています。私は 'while(output <1)'と言っています。 –

+0

あなたのコードで@Simon出力は3.46です。入力は0.0034567ですが、3.457にする必要があります。3 – kolaveri

+0

これは、 '0.3034567'に対して間違った答えを返します。 –

関連する問題