2016-04-10 5 views
1

コンマで区切られた0のパッド付きの倍精度を取得するためにString.formatを使用しようとしています。 私は以下を使用しています:javaでゼロパッドのString.format doubleをカンマで区切るにはどうすればよいですか?

"%0,9.2f", unitPrice 

単価は倍です。 unitPriceがたとえば44.99の場合、00,044.99が必要なときは000044.99が得られます。単価が4499であれば、代わりに04,499.00が必要になります。

答えて

1

あなたは、10進数をフォーマットするNumberFormatDecimalFormat具象サブクラスを使用することができます。それは西洋、アラビア語、およびインド語のサポートを含む、任意のロケールで解析することを可能にするために設計された機能とフォーマット番号の様々なています

DecimalFormat df = new DecimalFormat("00,000.00"); 
System.out.println(df.format(44.99)); 
System.out.println(df.format(4499)); 

出力等桁)される(要求されたように)

00,044.99 
04,499.00 
0

これは等しい又は1000がそうチェックより大きい値に対してのみ可能ですJava 8のurceコードとゼロ埋め込みは、の後にグループセパレータを挿入した後に実行されます。

あなたは@Elliot Frischの回答のように独自の書式を書かなければなりません。

彼の答えはロケールに依存しますが、カンマ,には、DecimalFormatSymbolsのローカライズされたインスタンスを指定することで強制できます。

new DecimalFormat("00,000.00", DecimalFormatSymbols.getInstance(Locale.US)) 
+0

追加の説明をいただきありがとうございます。ローカリゼーションは今のところ懸念されていません。これは主に自分の学習のためのものです。 – Arran

関連する問題