4

Java で DecimalFormat を使用して、次のようなルールに従って価格をフォーマットすることは可能ですか: 50000 => 50 000 rub 00 kop

4

2 に答える 2

6
NumberFormat.getCurrencyInstance() 

おそらくあなたが望むことをします。

ルーブルやコペイカの単語の代わりに記号を使用する場合があります。

これが実際の例です:

    final NumberFormat currencyInstance = NumberFormat.getCurrencyInstance();
    currencyInstance.setCurrency(Currency.getInstance("RUB"));
    System.out.println(currencyInstance.format(50000));

私のためのこの出力:

RUB50,000.00

これはまさにあなたが求めたものではありません。しかし、それは始まりです。

この代替

final NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(new Locale("ru", "RU"));
System.out.println(currencyInstance.format(50000.01));

私にくれた

50 000,01 руб

于 2010-03-29T10:57:28.260 に答える
0

.Net を使用していると仮定すると、次を使用して出力をフォーマットできます。

<%
  String format = "<p>{0:#,0 rub .00 kop}</p>";
  Response.Write(String.Format(format, 98765.4321));
  Response.Write(String.Format(format, 98765.4));
  Response.Write(String.Format(format, 987654321));
  Response.Write(String.Format(format, 0.12345));
  Response.Write(String.Format(format, 0.1));
  Response.Write(String.Format(format, 0));
%>

どの出力;

 98,765 rub .43 kop
 98,765 rub .40 kop
 987,654,321 rub .00 kop
 0 rub .12 kop
 0 rub .10 kop
 0 rub .00 kop

ただし、小数点以下を取り除く方法がわからず、kop == ゼロの場合は省略します。

+/ve -/ve 文字列を別の方法でフォーマットすることもできます。http://blog.stevex.net/string-formatting-in-csharp/

于 2010-03-29T11:10:03.223 に答える