问题

如何在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()));

原文链接