在Java中浮动到货币

时间:2012-11-08 06:10:18

标签: java regex string number-formatting

如果输入数字(浮点数),例如12500,则该数字转换为货币格式为12,500.00。格式为'###,###,###。##'。如何使用java和不带任何apache utils或类似的库来执行此操作。逗号将在每3个数字后重复,并且十进制数将被舍入并显示为小数位后的2位数。如果.5应该是.50和 如果.569应该是.57。通过正则表达式或其他任何方法解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

我通过在Google上进行一些搜索找到了以下代码...可能对您有所帮助......

查看此链接,了解非常有帮助。在这个链接上,只有他们已经给出了必要的格式......

http://docs.oracle.com/javase/tutorial/i18n/format/numberFormat.html

static public void displayCurrency( Locale currentLocale) {

    Double currencyAmount = new Double(9876543.21);
    Currency currentCurrency = Currency.getInstance(currentLocale);
    NumberFormat currencyFormatter = 
        NumberFormat.getCurrencyInstance(currentLocale);

    System.out.println(
        currentLocale.getDisplayName() + ", " +
        currentCurrency.getDisplayName() + ": " +
        currencyFormatter.format(currencyAmount));
}

前面的代码行生成的输出如下:

French (France), Euro: 9 876 543,21 €
German (Germany), Euro: 9.876.543,21 €
English (United States), US Dollar: $9,876,543.21

在这种情况下,您可以选择语言环境,甚至可以在不知道特定国家/地区使用的格式的情况下欣赏。

答案 1 :(得分:1)

      public static void main(String args[])
      {
      float amount =  2192.05f;
      NumberFormat formatter = new DecimalFormat("###,###,###.##");
       System.out.println("The Decimal Value is:"+formatter.format(amount));
      }