Java如何更改货币符号?
本示例向您展示如何使用DecimalFormatSymbols.setCurrencySymbol()方法更改已定义语言环境的货币符号。更改货币符号后,该DecimalFormatSymbols实例将传递给DecimalFormat进行格式化的对象。
package org.nhooo.example.text;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;
public class CurrencyFormatSymbols {
public static void main(String[] args) {
double number = 123456.789;
Locale[] locales = {Locale.CANADA, Locale.GERMANY, Locale.UK, Locale.ITALY, Locale.US};
String[] symbols = {"CAD", "EUR", "GBP", "ITL", "USD"};
for (int i = 0; i < locales.length; i++) {
//获取每个语言环境的货币格式值
//不变的货币符号
DecimalFormat formatter = (DecimalFormat) NumberFormat.getCurrencyInstance(locales[i]);
String before = formatter.format(number);
//为每个语言环境和集创建一个DecimalFormatSymbols
//它的新货币符号。
DecimalFormatSymbols symbol = new DecimalFormatSymbols(locales[i]);
symbol.setCurrencySymbol(symbols[i]);
//将新的DecimalFormatSymbols设置为格式化程序对象。
formatter.setDecimalFormatSymbols(symbol);
//获取格式化值
String after = formatter.format(number);
System.out.println(locales[i].getDisplayCountry() + " | before: " + before + " | after: " + after);
}
}
}这是我们程序的结果:
Canada | before: $123,456.79 | after: CAD123,456.79 Germany | before: 123.456,79 € | after: 123.456,79 EUR United Kingdom | before: £123,456.79 | after: GBP123,456.79 Italy | before: € 123.456,79 | after: ITL 123.456,79 United States | before: $123,456.79 | after: USD123,456.79