我已经尝试过用十进制格式化整数的方法加上没有解决最接近结果的方法希望使用BigDecimal加上它非常广泛。我哪里错了?
Double value = 20852;
DecimalFormat df = new DecimalFormat("0.00##");
String result = df.format(value);
结果= 20852.00
预期结果:20.852
答案 0 :(得分:0)
使用小数格式定义需要设置的小数位数。输出完全正确。如果你有double value = 20.852
,它会创建所需的输出。你想要的是设置千分离器:
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance();
DecimalFormat df = new DecimalFormat("###,###.##", symbols);
答案 1 :(得分:0)
正如您的问题所述,在不更改任何数字并获得您的明确要求的结果的情况下,您可以通过将 点字符设置为千位分隔符来执行此操作 :
Double value = 20852d;
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance();
symbols.setGroupingSeparator('.');
DecimalFormat df = new DecimalFormat("##,000", symbols);
String result = df.format(value);