如何在android中将具有多个点的字符串转换为double

问题描述 投票:0回答:5

我有一个字符串“3,350,800”有多个点我想转换为double但有多个错误点

String number = "3,350,800"
number = number.replace(",", ".");
double value = Double.parseDouble(number);

错误:java.lang.NumberFormatException:多个点

java android number-formatting numberformatexception
5个回答
5
投票

.字符在英语中用作小数点,并且您不能在数字中使用多个字符。

看起来好像你正在使用它作为千位分隔符。这在几个语言环境中是合法的 - 你只需要使用允许它的一个,例如:

String number = "3.350.800";
NumberFormat format = NumberFormat.getInstance(Locale.GERMAN);
double value = format.parse(number).doubleValue();

1
投票

你需要使用这样的东西:

String number = "3,350,800";
number = number.replaceAll(",", "");
double value = Double.parseDouble(number);
System.out.println(value);

1
投票

混合其他答案,没有理由改变,为。然后取出德国本地人。

String number = "3,350,800";
NumberFormat format = NumberFormat.getInstance();
double value = format.parse(number).doubleValue();
System.out.println(value);

输出:

3350800.0

-1
投票

你想要得到多少? 3.350.800是你想要解析为双倍的, 但这显然不是一个数字,因为有“多点”。

如果您只想将3,350,800作为您的号码,只需更改此行 - number = number.replace(",", ".");

对此 - number = number.replace(",", "");


-1
投票

您可以拆分字符串并创建一个数组,然后从不同的索引访问类似数组

String string = "300,30,3";
String[] stringList = string.split(",");

现在你可以获得这样的价值

String double_1=stringList[0];
String double_2=stringList[1];
String double_3=stringList[2];

String new_string=double_1+double_2+double_3;

Double value=Double.parseDouble(new_string); 
© www.soinside.com 2019 - 2024. All rights reserved.