我在java中解析一个荷兰语格式的XML文件。在该文件中,有一些金额符合荷兰语区域。 例如: TaxTotal = 1.027,120000 这个数量在字符串中。 我想将此金额转换为英语区域设置的两倍,如下所示: 的将TaxTotal = 1,027.12 现在这个数量应该转换为双重格式: 的将TaxTotal = 1027.12
我的问题是如何将1.027,120000转换为1,027.12然后转换为1027.12。
答案 0 :(得分:1)
使用NumberFormat,明确设置您要使用的Locale:
Number number = NumberFormat.getInstance(Locale.GERMANY).parse("1.027,120000");
System.out.println(NumberFormat.getInstance(Locale.ENGLISH).format(number)); // 1,027.12
System.out.println(number.doubleValue()); // 1027.12
答案 1 :(得分:0)
试试这段代码:
String sInput1 = "1.027,120000";
DecimalFormatSymbols dfsin = DecimalFormatSymbols.getInstance();
dfsin.setDecimalSeparator(',');
dfsin.setGroupingSeparator('.');
DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(dfsin);
Number n = df.parse(sInput1);
DecimalFormat df1 = new DecimalFormat("#.##");
DecimalFormatSymbols dfsout = DecimalFormatSymbols.getInstance();
dfsout.setDecimalSeparator('.');
df1.setDecimalFormatSymbols(dfsout);
System.out.println(df1.format(n));