2016-12-07 8 views
0

私は現在、Javaでフォーマットすると、次のような問題に遭遇したかを学んでいる期待できないようSystem.out.format( "%6f%n"、123.0)の出力。

私は

System.out.format("%6f%n", 123.0); 

が、私は結果が左に1つの空白と123.0(ことを期待していすなわち出力の最小長は6になります)。しかし、代わりに私は持っている

123.000000 //with no blank space on the left 

どうしてですか?なぜ小数点以下6桁はありますか?誰かがそれを私に説明してもらえますか?

+1

代わりに '%5.1f'を使用してみてください。 – Logan

+1

文字列( '' 123.0 "')がすでに5文字の長さのときに、左に空白スペースが1つ必要なのはなぜですか? –

+0

申し訳ありませんが、それはタイプミスでした。私は6を意味しました – Thor

答えて

1

小数点以下の桁数を指定する必要があります。そうしないと、6桁とみなされます。だから、行うことができます。

System.out.format("%6.1f%n", 123.0); 

Javadocから:

メートルの小数部や に対する結果の桁数の精度に等しいですが。 精度が指定されていない場合、 の既定値は6です。精度が によって返される文字列の小数点以下の桁数 より小さい場合Float.toString(float)またはDouble.toString (double)である場合、 ラウンドハーフアップアルゴリズムを使用して値が丸められます。 それ以外の場合は、精度に達するためにゼロが追加されることがあります。

+0

ありがとうございました!この質問は今何時間も問題になっています!あなたのおかげで今はすべてがクリアです! – Thor

関連する問題