2012-02-21 5 views

答えて

12
DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setGroupingSeparator(' '); 
DecimalFormat format = new DecimalFormat("#,###.00", symbols); 

System.out.format("%14s\n", format.format(1235353.93)); 
System.out.format("%14s\n", format.format(10.03)); 

私のマシン上で以下の上記プリント:

1 235 353.93 
     10.03 

あなたが変数に結果を保存したい場合は、String.formatを使用することができます。

String formatted = String.format("%14s", format.format(1235353.93)); 

System.out.println("Formatted Number is " + formatted); 

しかし、あなたがグループ化セパレータとして(スペース)を使用することに悩まされなかったなら、あなたは単純に印刷し

String.format("%,14.2f", 234343.34); 

:この行わ

234,343.34 
+0

何どこにもこのフォーマットされた文字列を使用してはどうですか?それを変数、例えば?説明できますか? – Juvanis

+0

@deporter私の編集を参照してください – adarshr

+0

ありがとう、String.format( "%14s"、format.format(1235353.93))が必要でした。 Javaから古いCOBOLレポートを出力する必要があります。 – Rinus

1

String#format()に試してみて - そのフォーマット文字列はあなたが必要なものをやらせる必要があります。

0

あなたが通貨をフォーマットするためにこれをやっている場合は、ロケールを使用するために、より堅牢です:

Locale uslocale = new Locale.Builder().setLanguage("en").setRegion("US").build(); 
NumberFormat.getCurrencyInstance(uslocale).format(payment); 
関連する問題