输入值
double value = 668260.10;
输出应为:6,68,260.10
。
我尝试了下面的内容,但它正在执行668,260.10
:
NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern("#,##,###.00");
String output = df.format(value);
System.out.println(output);
(注意:分隔符样式如this Wikipedia article中所述。)
答案 0 :(得分:0)
NumberFormat
不支持这种格式化。
答案 1 :(得分:0)
您需要定义自定义格式,如下所示
public class Test {
public static void main(String[] args) {
DecimalFormat formatter = new DecimalFormat("#,##,##0.00");
System.out.println(formatLakh(668260.10));
}
private static String formatLakh(double d) {
String s = String.format(Locale.UK, "%1.2f", Math.abs(d));
s = s.replaceAll("(.+)(...\\...)", "$1,$2");
while (s.matches("\\d{3,},.+")) {
s = s.replaceAll("(\\d+)(\\d{2},.+)", "$1,$2");
}
return d < 0 ? ("-" + s) : s;
}
}