我不确定这是我或什么,但我有一个问题,将双精度转换为字符串。

这是我的代码:

double total = 44;
String total2 = Double.toString(total);

是我做错了什么,还是我漏了一步。

我得到错误NumberFormatException时,试图转换这个。

totalCost.setOnTouchListener(new OnTouchListener() {
  public boolean onTouch(View v, MotionEvent event) {
    try {
      double priceG = Double.parseDouble(priceGal.getText().toString());
      double valG = Double.parseDouble(volGal.toString());
      double total = priceG * valG;
      String tot = new Double(total).toString();
      totalCost.setText(tot);
    } catch(Exception e) {
      Log.e("text", e.toString());
    }

    return false;
  }         
});

我试图在onTouchListener中做到这一点。我张贴更多的代码,基本上当用户触摸编辑文本框,我想要的信息计算一个填充编辑文本框。


当前回答

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

它的工作原理。一定是重复的。

其他回答

double total = 44;
String total2 = new Double(total).toString();

有三种方法将double类型转换为String类型。

Double.toString (d) String.valueOf (d) ”“+ d 公共类DoubleToString { public static void main(String[] args) { 双d = 122; System.out.println (Double.toString (d)); System.out.println (String.valueOf (d)); System.out.println (" + d); } }

字符串为double

Double.parseDouble(str);

这段代码可以编译并为我工作。它使用您尝试的调用将double类型转换为字符串。

public class TestDouble {

    public static void main(String[] args) {
        double total = 44;
        String total2 = Double.toString(total);

        System.out.println("Double is " + total2);
    }
}

我对你看到的NumberFormatException感到困惑。查看堆栈跟踪。我猜你有其他代码,你没有显示在你的例子,导致异常抛出。

科特林

您可以在kotlin中的任何数据类型上直接使用.toString,例如

val d : Double = 100.00
val string : String = d.toString()
double total = 44;
String total2 = String.valueOf(total);

这将把double转换为String