我想转向,例如 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 。
答案 0 :(得分:2)
如果您希望-4,000.43
(来自format()
来电的字符串)成为-4 000,43
,您可以两个替换。
第一个是用空格替换所有,
个字符,然后用.
替换所有,
个字符。
String formatted_value = df.format(value)
.replaceAll("," , " ")
.replaceAll("\\.", ",");
如果你想交换 ,
和.
(a),这会有问题,但你仍然可以这样做,尽管有3 - 步骤:
comma => X
period => comma
X => period
(其中X
是字符串中未出现的任何字符,例如"X"
)。
但是,您可以使用格式字符串,而无需更换字符串。从here开始,特殊字符似乎已本地化,因此应该有一种方法可以根据区域设置创建具有特定DecimalFormat
的{{1}}。
至少在Java本身就是这种情况。 Java Android是否可以做同样的事情,我不确定。众所周知,他们之前在国际化方面采取了不同的策略。
(a)认识那些欧洲人及其有趣的数字格式: - )