我有一个字符串“3,350,800”有多个点我想转换为double但有多个错误点
String number = "3,350,800"
number = number.replace(",", ".");
double value = Double.parseDouble(number);
错误:java.lang.NumberFormatException:多个点
.
字符在英语中用作小数点,并且您不能在数字中使用多个字符。
看起来好像你正在使用它作为千位分隔符。这在几个语言环境中是合法的 - 你只需要使用允许它的一个,例如:
String number = "3.350.800";
NumberFormat format = NumberFormat.getInstance(Locale.GERMAN);
double value = format.parse(number).doubleValue();
你需要使用这样的东西:
String number = "3,350,800";
number = number.replaceAll(",", "");
double value = Double.parseDouble(number);
System.out.println(value);
混合其他答案,没有理由改变,为。然后取出德国本地人。
String number = "3,350,800";
NumberFormat format = NumberFormat.getInstance();
double value = format.parse(number).doubleValue();
System.out.println(value);
输出:
3350800.0
你想要得到多少?
3.350.800
是你想要解析为双倍的,
但这显然不是一个数字,因为有“多点”。
如果您只想将3,350,800
作为您的号码,只需更改此行 -
number = number.replace(",", ".");
对此 -
number = number.replace(",", "");
您可以拆分字符串并创建一个数组,然后从不同的索引访问类似数组
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);