12
public static String formatAmountUpToTwoDecimalNumber(String amount)
    {       
        if(amount==null || "".equals(amount))
        {
             return "";
        }  
        Double doubleAmount = Double.valueOf(amount);
        double myAmount = doubleAmount.doubleValue();
        NumberFormat f = new DecimalFormat("###,###,###,###,##0.00");
        String s = f.format(myAmount);
        return s;
    }

"###,###,###,###,##0.00"、このパターンの目的は何ですか? 私はそれが2つの目的を果たすと信じています

  1. 数字をグループ化するには、千区切りのコンマを入れます
  2. 23 を 23.00 に変換する 10 進数が欠落している場合、10 進数の後に 2 つのゼロを追加します。

しかし、なぜ小数"0"の前の代わりにあるのですか? "#"このゼロの目的は何ですか?助けてくれてありがとう。

4

3 に答える 3

21
Symbol  Location    Localized?  Meaning
0       Number      Yes         Digit
#       Number      Yes         Digit, zero shows as absent 

から: http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

#番号がない場合はsoは表示されません。先頭0は、小数点の前に少なくとも 1 桁あることを意味します。

于 2011-12-14T10:34:07.310 に答える
5

#先行ゼロでない場合にのみ数字を入力します。0末尾のゼロであっても数字を入力します。固定桁数を印刷したい場合は、前にゼロを使用することもできます。

于 2011-12-14T10:34:55.590 に答える
4

dp の前にゼロがあると、0.23 のような小さな数値は 0.23 として表示されます。これがないと先頭のゼロが取得されないため、.23 と表示されます。Excel などのスプレッドシートをお持ちの場合は、こちらでも確認できます。

于 2011-12-14T10:48:48.760 に答える