【问题标题】:toString error, cannot resolve method toString()toString 错误,无法解析方法 toString()
【发布时间】:2019-05-19 09:49:39
【问题描述】:

我正在尝试将双精度转换为字符串以用于显示目的,但我收到一条错误消息“无法解析方法“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));
}

我希望它会在应用程序中显示总计, 到目前为止,总数是双倍的,但我需要它是一个用于显示目的的字符串。

【问题讨论】:

  • Double.toString(tipTotal)

标签: java android


【解决方案1】:

那是因为tipTotal 是基本类型double

使用以下方法之一,

"" +tipTotal;
Double.toString(tipTotal);
String.valueOf(tipTotal);
new Double(tipTotal).toString();
String.format("%f", tipTotal) ;

【讨论】:

    【解决方案2】:

    这甚至不会编译,因为您不能在原语上调用方法(tipTotaldouble)。

    请改用String.valueOf(tipTotal)

    【讨论】:

      【解决方案3】:

      在 Java 中,您不能在 doubleintfloat 等基本类型上调用方法。你有很多选项可以放在setText 方法中

      • Double.toString(tipTotal)
      • String.valueOf(tipTotal)
      • tipTotal + ""

      【讨论】:

        【解决方案4】:

        方法 toString() 没有参数。 如果你想打印你的结果:totalAmountTextView.setText(String.valueOf(total))

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题,我找到了原因!

          在创建 tipTotal 时应该使用 Double(double 与 Double 不同),因为 Double 是一个为您提供方法 toString() 的类。

          所以你应该这样声明tipTotal

          Double tipTotal;
          String str = tipTotal.toString();
          

          【讨论】:

            猜你喜欢
            • 2021-10-03
            • 1970-01-01
            • 2016-07-21
            • 1970-01-01
            • 1970-01-01
            • 2021-04-21
            • 2014-05-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多