0

如果输入一个数字(浮点数),例如 12500,则该数字将转换为货币格式,如 12,500.00。格式为“###,###,###.##”。如何在没有任何 apache utils 或类似库的情况下使用 java 来做到这一点。每 3 位数字后将重复一个逗号,小数点将四舍五入并显示为小数点后 2 位数字。如果是 0.5,则应为 0.50,如果为 0.569,则应为 0.57。有没有通过正则表达式或任何东西来解决这个问题?

4

2 回答 2

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

在这种情况下,您可以选择区域设置,甚至可以在不知道特定国家/地区使用的格式的情况下享受。

于 2012-11-08T06:19:21.287 回答
2
      public static void main(String args[])
      {
      float amount =  2192.05f;
      NumberFormat formatter = new DecimalFormat("###,###,###.##");
       System.out.println("The Decimal Value is:"+formatter.format(amount));
      }
于 2012-11-08T06:14:23.293 回答