首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置不带货币符号的货币格式

设置不带货币符号的货币格式
EN

Stack Overflow用户
提问于 2011-12-29 00:02:32
回答 13查看 64K关注 0票数 68

我正在使用NumberFormat.getCurrencyInstance(myLocale)为我给定的语言环境获取自定义货币格式。但是,这总是包括我不想要的货币符号,我只想要为我的给定区域设置正确的货币数字格式,而不是货币符号。

执行format.setCurrencySymbol(null)会抛出异常..

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2011-12-29 00:18:45

以下是有效的方法。它有点难看,但它满足了合同的要求:

代码语言:javascript
复制
NumberFormat nf = NumberFormat.getCurrencyInstance();
DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) nf).getDecimalFormatSymbols();
decimalFormatSymbols.setCurrencySymbol("");
((DecimalFormat) nf).setDecimalFormatSymbols(decimalFormatSymbols);
System.out.println(nf.format(12345.124).trim());

您还可以从货币格式中获取模式,删除货币符号,然后从新模式中重新构建新格式:

代码语言:javascript
复制
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));
票数 69
EN

Stack Overflow用户

发布于 2011-12-29 00:17:25

改为使用空字符串进行设置:

代码语言:javascript
复制
DecimalFormat formatter = (DecimalFormat) NumberFormat.getCurrencyInstance(Locale.US);
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setCurrencySymbol(""); // Don't use null.
formatter.setDecimalFormatSymbols(symbols);
System.out.println(formatter.format(12.3456)); // 12.35
票数 47
EN

Stack Overflow用户

发布于 2019-04-25 22:35:05

例如,给定的解决方案有效,但最终为欧元留下了一些空格。我最终做了:

代码语言:javascript
复制
numberFormat.format(myNumber).replaceAll("[^0123456789.,]","");

这确保了我们具有不带货币或任何其他符号的数字的货币格式。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8658205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档