You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TextView无法转换为double类型修复后仍无法获取总金额求助

问题解决:EditText金额转换错误

你的核心问题是始终没正确使用EditText的输入文本值,而是直接操作了EditText对象本身,导致无法解析出正确的金额:

错误原因分析

  1. 初始代码中Double.toString(editTextPayment)是把EditText对象转成字符串(而非用户输入的文本),还试图赋值给double变量,直接触发类型不匹配错误。
  2. 修改后的代码里Double.parseDouble(String.valueOf(editTextPayment))同样是把EditText对象转成字符串(格式类似android.widget.EditText@xxxxxx),根本不是用户输入的数字,自然解析失败。

正确代码实现

你已经获取了用户输入的文本存在payment变量里,直接用它解析即可:

try{
    String payment = editTextPayment.getText().toString();
    // 先判断输入是否为空,避免无效解析
    if (!payment.isEmpty()) {
        double total = Double.parseDouble(payment) * 100;
        options.put("amount", total);
    }
} catch (NumberFormatException e){
    // 可添加用户提示,比如"请输入有效金额"
    e.printStackTrace();
}

进阶优化(金额计算建议)

如果涉及金额相关的计算,推荐用BigDecimal替代double,避免浮点数精度丢失问题:

try{
    String payment = editTextPayment.getText().toString();
    if (!payment.isEmpty()) {
        BigDecimal total = new BigDecimal(payment).multiply(new BigDecimal("100"));
        options.put("amount", total.doubleValue()); // 根据options的类型调整,也可直接存储BigDecimal
    }
} catch (NumberFormatException e){
    e.printStackTrace();
}

内容的提问来源于stack exchange,提问作者Anaahatas Wellness

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:33:01