为了账号安全,请及时绑定邮箱和手机立即绑定

将double转换为字符串

将double转换为字符串

LEATH 2019-10-16 13:44:06
我不确定是我还是什么,但是将双精度转换为字符串时遇到问题。这是我的代码: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中执行此操作。病态发布更多代码,基本上是当用户触摸编辑文本框时,我希望信息计算填充编辑文本框。
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

double total = 44;

String total2 = String.valueOf(total);

这会将double转换为String


查看完整回答
反对 回复 2019-10-16
?
DIEA

TA贡献1820条经验 获得超2个赞

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


查看完整回答
反对 回复 2019-10-16
?
开满天机

TA贡献1786条经验 获得超13个赞

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


public class TestDouble {


    public static void main(String[] args) {

        double total = 44;

        String total2 = Double.toString(total);


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

    }

}

您看到NumberFormatException令我感到困惑。查看堆栈跟踪。我猜您在示例中未显示其他代码,该代码导致引发该异常。


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 1250 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信