Java String.format两个小数位,点为千位分隔符,逗号为十进制分隔符

时间:2019-05-26 09:49:02

标签: java string format decimal

我需要将浮点数的格式精确到小数点“。”。作为千位分隔符,“,”作为十进制分隔符,例如:“ 1.234,56”

我已经尝试过String.format("%,f", myFloat),但是它给了我太多这样的小数位:“ 1.150,000000”。另外,String.format("%,2f", myFloat)也不起作用。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用DecimalFormat类根据需要设置数字格式:

float number = 12344.12f;

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator('.');
symbols.setDecimalSeparator(','); // to be sure it is ','

DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setDecimalFormatSymbols(symbols);
decimalFormat.setMaximumFractionDigits(2);

String format = decimalFormat.format(number);

System.out.println(format);

输出为:

12.344,12

编辑

对于固定的小数位数,请尝试以下操作:

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator('.');
symbols.setDecimalSeparator(','); // to be sure it is ','

DecimalFormat decimalFormat = new DecimalFormat("#.###.00");
decimalFormat.setDecimalFormatSymbols(symbols);

String format = decimalFormat.format(number);