将字符串转换为双精度

发布于 2024-12-01 03:30:45 字数 168 浏览 0 评论 0原文

有没有办法将字符串转换为双精度。我就是这样做的。

String s = b.getText().toString();
       double d = Double.parseDouble(s);

它给出了 NumberFormatException

Is there way to convert a string to double. This is how i did.

String s = b.getText().toString();
       double d = Double.parseDouble(s);

It gives NumberFormatException

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情深如许 2024-12-08 03:30:45

试试这个

String s = b.getText().toString();
double d = Double.valueOf(s.trim()).doubleValue();

Try this

String s = b.getText().toString();
double d = Double.valueOf(s.trim()).doubleValue();

夜未央樱花落 2024-12-08 03:30:45

您可能从零长度字符串开始。在解析之前检查长度。捕获 NumberFormatException 也没什么坏处,尽管如果视图布局中有 android:inputType="number" ,这应该不是问题。

double d = 0;
CharSequence cs = b.getText();
if(cs != null && cs.length() > 0) {
    d = Double.parseDouble(cs.toString());
}

You are probably starting off with a zero-length string. Check the length before you parse it. It also wouldn't hurt to catch NumberFormatException, although that shouldn't be problem if you have android:inputType="number" in the view's layout.

double d = 0;
CharSequence cs = b.getText();
if(cs != null && cs.length() > 0) {
    d = Double.parseDouble(cs.toString());
}
偏爱自由 2024-12-08 03:30:45

我有类似的问题。
为了将 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;
    }

这与当前手机区域设置无关并返回正确的双精度值。

希望有帮助;

i have a similar problem.
for correct formatting EditText text content to double value i use this code:

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;
    }

this is independet from current phone locale and return correct double value.

hope it's help;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文