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

这是我的代码:

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中做到这一点。我张贴更多的代码,基本上当用户触摸编辑文本框,我想要的信息计算一个填充编辑文本框。


当前回答

当你做的时候呢

totalCost.setText(tot);

你就这么做

totalCost.setText( "" + total );

在哪里“”+ <变量>将它自动转换为字符串

其他回答

double.toString()应该可以工作。不是变量类型Double,而是变量本身Double。

只需使用以下方法:

doublevalue+""; 

这适用于任何数据类型。

例子:

Double dd=10.09;
String ss=dd+"";

使用Double.toString(),如果数字太小或太大,您将得到这样的科学符号:3.4875546345347673E-6。有几种方法可以更好地控制输出字符串格式。

double num = 0.000074635638;
// use Double.toString()
System.out.println(Double.toString(num));
// result: 7.4635638E-5

// use String.format
System.out.println(String.format ("%f", num));
// result: 0.000075
System.out.println(String.format ("%.9f", num));
// result: 0.000074636

// use DecimalFormat
DecimalFormat decimalFormat = new DecimalFormat("#,##0.000000");
String numberAsString = decimalFormat.format(num);
System.out.println(numberAsString);
// result: 0.000075

使用String.format()将是最方便的方式。

当你想格式化小数并将其转换为字符串时,DecimalFormat很有帮助。

例子:

DecimalFormat format = new DecimalFormat("#.####");
format.format(yourDoubleObject);

这些是在DecimalFomat中作为模式的一部分支持的各种符号。

double total = 44;
String total2 = String.valueOf(total);

这将把double转换为String