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

最佳答案

通过在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


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

10-06 10:15