将双精度转换为字符串

新手上路,请多包涵

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

这是我的代码:

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

原文由 Brandon Wilson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 352
2 个回答
double total = 44;
String total2 = String.valueOf(total);

这会将 double 转换为 String

原文由 Bhavit S. Sengar 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 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() 将是最方便的方法。

原文由 Nicholas Lu 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题