java-格式化没有货币符号的货币
我正在使用format.setCurrencySymbol(null)为我给定的语言环境获取自定义货币格式。 但是,这始终包括我不需要的货币符号,我只想要给定语言环境的正确货币数字格式而没有货币符号。
进行format.setCurrencySymbol(null)会引发异常。
7个解决方案
55 votes
以下作品。 这有点丑陋,但可以履行合同:
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 Dec