2016-09-08 18 views
-7
double s = 0.320166 

この値を小数点以下3桁まで四捨五入します。 は私がsを表示すると、私はこの結果0.32を取得しています、このコード2桁から小数点以下3桁に丸めます

int v = s * 1000; 
s = double(v)/1000; 

を使用しています、これを行うにしてください。 最後に0が表示されていません。私は0.320小数点以下3桁を正確に表示したい。私は結果が正しいことを知っていますが、とにかく最後に0が表示できることはありますか?

+1

末尾のゼロは、文字列の書式設定の問題であり、数学の問題ではありません。先行/後続のゼロパディングが必要な場合は、適切な文字列書式設定関数を使用して行う必要があります。 –

+0

'setprecision(3)'は10進数の後に3桁を表示します。 – Barmar

+0

http://en.cppreference.com/w/cpp/io/manip/setprecision – HazemGomaa

答えて

1
char buf[32]; 
sprintf(buf, "%.3f", s); 
+1

これはCのコードです。質問はC++にタグ付けされています。 – Kevin

+0

これは完全に有効なC++コードです。どのC++関数でも動作します。 –

+0

次に、C++バージョン 'std :: sprintf'を使います。 – Kevin

関連する問題