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));

这个输出对我来说:

50,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 回答