DecimalFormat用于java中的价格格式

时间:2010-03-29 10:35:14

标签: java decimalformat

是否可以使用Java中的DecimalFormat根据这样的规则格式化价格: 50000 => 50 000擦00 kop

2 个答案:

答案 0 :(得分:6)

NumberFormat.getCurrencyInstance() 

可能会做你想要的。

对于卢布和kopeks,它可能使用符号而不是单词。

这是一个有效的例子:

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

给了我

  

50000,01руб

答案 1 :(得分: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/