有没有办法将字符串转换为双精度。我就是这样做的。
String s = b.getText().toString();
double d = Double.parseDouble(s);
它给出了 NumberFormatException
有没有办法将字符串转换为双精度。我就是这样做的。
String s = b.getText().toString();
double d = Double.parseDouble(s);
它给出了 NumberFormatException
尝试这个
字符串 s = b.getText().toString(); 双 d = Double.valueOf(s.trim()).doubleValue();
我有一个类似的问题。为了将 EditText 文本内容正确格式化为双倍值,我使用以下代码:
try {
String eAm = etAmount.getText().toString();
DecimalFormat dF = new DecimalFormat("0.00");
Number num = dF.parse(eAm);
mPayContext.amount = num.doubleValue();
} catch (Exception e) {
mPayContext.amount = 0.0d;
}
这与当前电话区域设置无关,并返回正确的双精度值。
希望对您有所帮助;
您可能从零长度字符串开始。在解析之前检查长度。捕获 NumberFormatException 也没有什么坏处,尽管如果您android:inputType="number"
在视图的布局中,这应该不是问题。
double d = 0;
CharSequence cs = b.getText();
if(cs != null && cs.length() > 0) {
d = Double.parseDouble(cs.toString());
}