问题
如何在Java中设置千位分隔符?我有BigDecimal的String表示,我想设置千位分隔符并返回String。
#1 热门回答(180 赞)
你可以使用格式功能",";
int no = 124750;
String str = String.format("%,d", no);
//str = 124,750
","包括特定于语言环境的分组字符。
docs
#2 热门回答(86 赞)
这应该工作(未经测试,基于JavaDoc):
DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
formatter.setDecimalFormatSymbols(symbols);
System.out.println(formatter.format(bd.longValue()));
根据JavaDoc,第一行中的强制转换应该保存为大多数语言环境。
#3 热门回答(44 赞)
BigDecimal bd = new BigDecimal(300000);
NumberFormat formatter = NumberFormat.getInstance(new Locale("en_US"));
System.out.println(formatter.format(bd.longValue()));
编辑
要获取自定义分组分隔符(如空格),请执行以下操作:
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance();
symbols.setGroupingSeparator(' ');
DecimalFormat formatter = new DecimalFormat("###,###.##", symbols);
System.out.println(formatter.format(bd.longValue()));