Javaで小数点第2位を持つ1000のセパレータのスペースを持つ左の文字列に埋め込まれた固定長のスペースに数値をフォーマットする方法は? (たとえば、14文字の文字列)固定長。スペースのスパンデッド、千seperator、Javaの小数点以下2桁の数値の値の形式
Ie.
Number = 10.03 must be " 10.03" and
Number 1235353.93 must be " 1 235 353.93".
Javaで小数点第2位を持つ1000のセパレータのスペースを持つ左の文字列に埋め込まれた固定長のスペースに数値をフォーマットする方法は? (たとえば、14文字の文字列)固定長。スペースのスパンデッド、千seperator、Javaの小数点以下2桁の数値の値の形式
Ie.
Number = 10.03 must be " 10.03" and
Number 1235353.93 must be " 1 235 353.93".
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
はString#format()に試してみて - そのフォーマット文字列はあなたが必要なものをやらせる必要があります。
あなたが通貨をフォーマットするためにこれをやっている場合は、ロケールを使用するために、より堅牢です:
Locale uslocale = new Locale.Builder().setLanguage("en").setRegion("US").build();
NumberFormat.getCurrencyInstance(uslocale).format(payment);
何どこにもこのフォーマットされた文字列を使用してはどうですか?それを変数、例えば?説明できますか? – Juvanis
@deporter私の編集を参照してください – adarshr
ありがとう、String.format( "%14s"、format.format(1235353.93))が必要でした。 Javaから古いCOBOLレポートを出力する必要があります。 – Rinus