我需要将浮点数的格式精确到小数点“。”。作为千位分隔符,“,”作为十进制分隔符,例如:“ 1.234,56”
我已经尝试过String.format("%,f", myFloat)
,但是它给了我太多这样的小数位:“ 1.150,000000”。另外,String.format("%,2f", myFloat)
也不起作用。
答案 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);