如何在java中将法国、德国价格转换为双倍价值

如何在java中将法国、德国价格转换为双倍价值,java,Java,我有法国价格:24445,00。。。。我使用下面的代码将其转换为双精度 NumberFormat nf = NumberFormat.getInstance(Locale.FRANCE); String s = "2 44 455,00"; double d = nf.parse(s); 我得到的输出只有“2” 如何获得正确的值 注意:我不想使用字符串的replaceAll()方法,因为不同的价格将采用不同的格式请尝试删除字符串中的空格: s=s.replace(" ",""); 然后解析。

我有法国价格:24445,00。。。。我使用下面的代码将其转换为双精度

NumberFormat nf = NumberFormat.getInstance(Locale.FRANCE);
String s = "2 44 455,00";
double d = nf.parse(s);
我得到的输出只有“2”

如何获得正确的值


注意:我不想使用字符串的replaceAll()方法,因为不同的价格将采用不同的格式

请尝试删除字符串中的空格:

s=s.replace(" ","");

然后解析。

首先需要去掉空格,然后应用以下代码:

    NumberFormat nf = NumberFormat.getInstance(Locale.FRANCE);
    String s1 = "2 44 455,80";
    String s2 = s1.replaceAll("\\s", "");
    double d = (Double) nf.parse(s2);
    System.out.println(d);

当你把
00
放在
之后时,
会将其视为Long而不是Double。

在转换之前是否尝试过剥离空格?预期输出是什么?预期输出:244455.00还有什么其他格式?德语:2.333,00类似于此其他格式,我不想使用字符串的replaceAll()方法,因为不同的价格会有不同的格式。对于德国人来说,这是2.333.00。同样,我需要使用replaceAll()@user3627222,但您将在代码中的这个位置专门处理法国货币,对吗?或者您只是尝试每个区域设置来猜测货币是什么?这些空格可能是不间断的空格,因此可能需要
\u00a0
,甚至更好:
\\s