我正在使用 NumberFormat.getCurrencyInstance(myLocale)
来获取我给定的语言环境的自定义货币格式。但是,这总是包含我不想要的货币符号,我只想要给定语言环境的正确货币数字格式,而没有货币符号。
执行 format.setCurrencySymbol(null)
会引发异常..
最佳答案
以下作品。有点难看,但是很符合约定:
NumberFormat nf = NumberFormat.getCurrencyInstance();
DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) nf).getDecimalFormatSymbols();
decimalFormatSymbols.setCurrencySymbol("");
((DecimalFormat) nf).setDecimalFormatSymbols(decimalFormatSymbols);
System.out.println(nf.format(12345.124).trim());
您还可以从货币格式中获取模式,删除货币符号,并从新模式中重建新格式:
NumberFormat nf = NumberFormat.getCurrencyInstance();
String pattern = ((DecimalFormat) nf).toPattern();
String newPattern = pattern.replace("\u00A4", "").trim();
NumberFormat newFormat = new DecimalFormat(newPattern);
System.out.println(newFormat.format(12345.124));
关于java - 格式化没有货币符号的货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8658205/