我正在尝试将双精度型转换为字符串以用于显示目的,但出现错误消息“无法解析方法“ toString()”
我测试了打印字符串,并且可以正常工作,但是当我尝试传递两倍的字符串时,我的应用程序崩溃了
void calcTheTip(Double tipPercentage) {
//getting the total bill (without the tip):
double billTotal = Double.valueOf(billTotalEditText.getText().toString());
//calculating the tip percentage:
double tipTotal = billTotal * tipPercentage;
//displaying the tip:
tipTotalTextView.setText(tipTotal.toString());
//calculate total:
double total = tipTotal + billTotal;
//display the total:
totalAmountTextView.setText(tipTotal.toString(total));
}
我希望它能显示在应用程序总数中, 到目前为止,总数是一倍,但为了显示目的,我需要将其作为一个字符串。
答案 0 :(得分:2)
这是因为tipTotal
是原始类型double
。
使用以下方法之一,
"" +tipTotal;
Double.toString(tipTotal);
String.valueOf(tipTotal);
new Double(tipTotal).toString();
String.format("%f", tipTotal) ;
答案 1 :(得分:1)
您无法在Java中针对诸如double
,int
,float
之类的原始类型调用方法。您可以在setText
方法中放入很多选项
Double.toString(tipTotal)
String.valueOf(tipTotal)
tipTotal + ""
答案 2 :(得分:0)
这甚至都不会编译,因为您无法在原语(tipTotal
是double
)上调用方法。
改为使用String.valueOf(tipTotal)
。
答案 3 :(得分:0)
方法toString()没有参数。 如果要打印结果:totalAmountTextView.setText(String.valueOf(total))
答案 4 :(得分:-1)
如果您只想将tipTotal转换为字符串,请使用toString()
,tipTotal.toString()
方法不使用任何类似的参数,或者如果您要使用total.toString()
将total转换为字符串,则
>