Conversión de doble a cadena

No estoy seguro de si soy yo o qué, pero tengo problemas para convertir un doble en una cadena.

aquí está mi código:

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

¿Estoy haciendo algo mal o me estoy perdiendo un paso aquí?

Recibo el error NumberFormatException al intentar convertir esto.

 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; } }); 

Estoy tratando de hacer esto en un OnTouchListener. Publicaré más código, básicamente cuando el usuario toca el cuadro de texto de edición, quiero que la información calcule y complete el cuadro de texto de edición.

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

Esto convertirá el doble en Cadena

Este código comstack y funciona para mí. Convierte un doble en una cadena usando las llamadas que intentó.

 public class TestDouble { public static void main(String[] args) { double total = 44; String total2 = Double.toString(total); System.out.println("Double is " + total2); } } 

Me sorprende ver tu NumberFormatException. Mira el rastro de la stack. Supongo que tiene otro código que no muestra en su ejemplo que está causando esa excepción.

Usando Double.toString (), si el número es demasiado pequeño o demasiado grande, obtendrá una notación científica como esta: 3.4875546345347673E-6. Hay varias formas de tener más control del formato de cadena de salida.

 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 

Use String.format () será la mejor manera conveniente.

La excepción probablemente proviene de las llamadas a parseDouble (). Verifique que los valores dados a esa función realmente reflejen un doble.

 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()); 

funciona. tiene que ser repetitivo.

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

este código funciona

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

Uno de esos arroja la excepción. Necesita agregar algo de registro / impresión para ver qué hay en volGal y priceGal , no es lo que piensa.

double.toString() debería funcionar. No es el tipo de variable Double , sino que la variable en sí es double .

Solo usa lo siguiente:

 doublevalue+""; 

Esto funcionará para cualquier tipo de datos.

Ejemplo:

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

¿Qué tal cuando haces el

 totalCost.setText(tot); 

Usted acaba de hacer

 totalCost.setText( "" + total ); 

Donde “” + lo convertirá en cadena automáticamente

Use la clase StringBuilder , así:

 StringBuilder meme = new StringBuilder(" "); // Convert and append your double variable meme.append(String.valueOf(doubleVariable)); // Convert string builder to string jTextField9.setText(meme.toString()); 

Obtendrá la salida deseada.