我想转向,例如5999.635554至5 999,63.我在下面使用了DecimalFormat方法:
public static String decimalDoubleForm(double value){
DecimalFormat df = new DecimalFormat("#,###,###.00");
String formatted_value = df.format(value).replaceAll("\\.", ",");
return formatted_value;
}
但是,当我使用它时,它是Util.decimalDoubleForm(value);在例如-4000.4343我得到以下-4,000,43.
我想要的结果应该是-4000.4343 => -4 000,43.
最佳答案 如果你想-4,000.43(来自format()调用的字符串)变成-4 000,43,你可以做两次替换.
第一种是用空格替换所有字符,然后替换所有字符.人物,.
String formatted_value = df.format(value)
.replaceAll("," , " ")
.replaceAll("\\.", ",");
当你想要交换时会出现问题. (a)但你仍然可以做到这一点,尽管有三个步骤:
comma => X
period => comma
X => period
(其中X是字符串中不出现的任何字符,例如“X”).
但是,可能存在可用于此的格式字符串,而无需替换字符串.从here开始,似乎特殊字符已本地化,因此应该有一种方法可以根据区域设置创建具有特定DecimalFormatSymbol的DecimalFormat.
至少在Java本身就是这种情况. Java Android是否可以做同样的事情,我不确定.众所周知,他们之前在国际化方面采取了不同的策略.
(a)认识那些欧洲人及其有趣的数字格式:-)