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