我正在尝试将String解析为Double,我不确定这是否是正确的方法。如果有人可以帮我检查一下,并给予反馈,我真的很感激。
以下是代码:
String amount = enterAmount.getText().toString();
double subtotal = Double.valueOf(amount).doubleValue();
提前感谢您的好评。
答案 0 :(得分:7)
你可以尝试
double subtotal = Double.parseDouble(amount);
答案 1 :(得分:4)
String amount = enterAmount.getText();
double subtotal = Double.parseDouble(amount);
答案 2 :(得分:3)
你应该围绕一个try-catch
块来包装这个调用并处理NumberFormatException
,如果该字符串不能被解析为Double
,将会抛出它。
答案 3 :(得分:1)
您也可以试试这个。
double subtotal = Double.parseDouble(amount);
答案 4 :(得分:1)
我做的是(当使用JFormattedTextField
或JTextField
时)用点替换所有逗号并删除空格:
String amount = enterAmount.getText();
amount = amount.replace(",",".").replace(" ", "");
double subtotal = Double.parseDouble(amount);
这意味着以下输入将起作用:
12
1,2
1.2
200 000
200 000,01
逗号用于很多欧洲国家:Wikipedia
蓝色=点;
绿色=逗号;
红色= Momayyez(/)
答案 5 :(得分:1)
您应该使用一些逻辑来确定它是否是有效数字。这是一个测试整数的函数:
public static int validateInteger(String number) { int i = -1; try { i = Integer.parseInt(number); } catch (NumberFormatException nfe) {} catch (NullPointerException npe) {} return i; }
在您的情况下,您必须将Integer.parseInt()函数更改为您想要的任何类型。
答案 6 :(得分:0)
如果你想成为国际,你应该使用它:
DecimalFormat.getNumberInstance(Locale).parse(numberAsString).doubleValue()