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

这是我的代码:

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 total = 44;
String total2 = new Double(total).toString();

这段代码可以编译并为我工作。它使用您尝试的调用将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感到困惑。查看堆栈跟踪。我猜你有其他代码,你没有显示在你的例子,导致异常抛出。


异常可能来自parseDouble()调用。检查赋予该函数的值是否真的反映了double。


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

其中之一是抛出异常。您需要添加一些日志/打印,以查看volGal和priceGal中的内容-这不是您想的那样。


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

这将把double转换为String


只需使用以下方法:

doublevalue+""; 

这适用于任何数据类型。

例子:

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

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.toString()应该可以工作。不是变量类型Double,而是变量本身Double。


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


使用StringBuilder类,如下所示:

StringBuilder meme = new StringBuilder(" ");

// Convert and append your double variable
meme.append(String.valueOf(doubleVariable));

// Convert string builder to string
jTextField9.setText(meme.toString());

你会得到你想要的输出。


当你做的时候呢

totalCost.setText(tot);

你就这么做

totalCost.setText( "" + total );

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


完整的信息

你可以使用String.valueOf()浮点数,双精度,int,布尔等。

double d = 0;
float f = 0;
int i = 0;
short i1 = 0;
char c = 0;
boolean bool = false;
char[] chars = {};
Object obj = new Object();


String.valueOf(d);
String.valueOf(i);
String.valueOf(i1);
String.valueOf(f);
String.valueOf(c);
String.valueOf(chars);
String.valueOf(bool);
String.valueOf(obj);

科特林

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

val d : Double = 100.00
val string : String = d.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);


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

例子:

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

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


这是一篇非常老的文章,但这可能是最简单的转换方法:

double total = 44;
String total2 = "" + total;

这是一个非常老的帖子,但是java双精度到字符串的转换可以通过许多方式完成,我将通过示例代码片段逐个介绍它们。

1. 使用+运算符

这是java中将double转换为字符串的最简单方法。

double total = 44;
String total2 = total + "";

2. Double.toString ()

我们可以使用Double类的toString方法来获得以小数点表示的Double的字符串表示。下面的代码片段向您展示了如何在java中使用它将double转换为字符串。

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

3.String.valueOf ()

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

4. 新双(双l)

带有双参数的双构造函数在Java 9中已弃用,但您应该知道这一点。

double total = 44;
//deprecated from Java 9, use valueOf for better performance
String total2 = new Double(total).toString();

5. String.format ()

我们可以在程序中使用Java字符串格式方法将double转换为字符串。

double total = 44;
String total2 = String.format("%f", total);

6. DecimalFormat

我们可以使用DecimalFormat类将double类型转换为String类型。我们还可以使用指定的小数位和向上四舍五入的字符串表示。

double total = 44;
String total2 = DecimalFormat.getNumberInstance().format(total);

//if you don't want formatting
total2 = new DecimalFormat("#.0#").format(total); // rounded to 2 decimal places

total2 = new DecimalFormat("#.0#").format(44); // rounded to 2 decimal places

7. 字符串生成器,字符串缓冲区

我们可以使用StringBuilder和StringBuffer append函数将double转换为string。

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