将double转换为字符串

我不确定是我还是什么,但是将双精度转换为字符串时遇到问题。


这是我的代码:


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中执行此操作。病态发布更多代码,基本上是当用户触摸编辑文本框时,我希望信息计算填充编辑文本框。


LEATH
浏览 1174回答 3
3回答

慕侠2389804

double total = 44;String total2 = String.valueOf(total);这会将double转换为String

DIEA

使用Double.toString(),如果数字太小或太大,您将得到如下科学表示形式:3.4875546345347673E-6。有几种方法可以更好地控制输出字符串格式。double num = 0.000074635638;// use Double.toString()System.out.println(Double.toString(num));// result: 7.4635638E-5// use String.formatSystem.out.println(String.format ("%f", num));// result: 0.000075System.out.println(String.format ("%.9f", num));// result: 0.000074636// use DecimalFormatDecimalFormat decimalFormat = new DecimalFormat("#,##0.000000");String numberAsString = decimalFormat.format(num);System.out.println(numberAsString);// result: 0.000075使用String.format()将是最好的便捷方法。

开满天机

这段代码可以为我编译和工作。它将使用您尝试的调用将双精度型转换为字符串。public class TestDouble {    public static void main(String[] args) {        double total = 44;        String total2 = Double.toString(total);        System.out.println("Double is " + total2);    }}您看到NumberFormatException令我感到困惑。查看堆栈跟踪。我猜您在示例中未显示其他代码,该代码导致引发该异常。
打开App,查看更多内容
随时随地看视频慕课网APP