Double转String报错:Cannot resolve method toString()问题求助
解决Double转String时的"Cannot resolve method 'toString()'"错误
嘿,我一眼就看到你代码里的问题啦!咱们一步步来理清楚:
问题根源
你遇到的报错是因为**double是Java的基本数据类型,它根本没有toString()方法**——只有对应的包装类Double才有这个实例方法,或者你可以用Double类的静态方法来转换。另外你最后一行代码还有个明显的错误:tipTotal.toString(total)完全不符合语法,而且你明明要转的是total变量,却写成了调用tipTotal的方法还传了参数,这肯定会导致应用崩溃。
修正方案
把double类型转成String用于TextView显示,有几种靠谱的方式:
- 使用
String.valueOf(数值):这个方法兼容性最好,不管是基本类型还是包装类都能处理 - 使用
Double.toString(数值):调用包装类的静态方法,专门用来把double转成字符串 - 简单的字符串拼接:
"" + 数值(虽然能用,但可读性稍差)
修正后的完整代码
void calcTheTip(Double tipPercentage) { //获取不含小费的账单总额: double billTotal = Double.valueOf(billTotalEditText.getText().toString()); //计算小费金额: double tipTotal = billTotal * tipPercentage; //显示小费: tipTotalTextView.setText(String.valueOf(tipTotal)); //计算总金额: double total = tipTotal + billTotal; //显示总金额: totalAmountTextView.setText(String.valueOf(total)); }
额外小建议
如果需要控制小数位数(比如显示两位小数,符合金额的常规格式),可以用String.format()来格式化,比如:
totalAmountTextView.setText(String.format("%.2f", total));
这样显示出来的金额会是保留两位小数的格式,更符合日常使用习惯哦!
内容的提问来源于stack exchange,提问作者Eric Forman
相关产品推荐
相关产品推荐

