[Java] Conversione da doppia a stringa


Answers

Questo codice compila e funziona per me. Converte un doppio in una stringa usando le chiamate che hai provato.

public class TestDouble {

    public static void main(String[] args) {
        double total = 44;
        String total2 = Double.toString(total);

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

Sono perplesso vedendo l'eccezione NumberFormatException. Guarda la traccia dello stack. Immagino che tu abbia un altro codice che non mostri nel tuo esempio che sta causando la generazione di quell'eccezione.

Question

Non sono sicuro che sia io o cosa, ma ho un problema nel convertire un doppio in stringa.

ecco il mio codice:

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

Sto facendo qualcosa di sbagliato o mi manca un passaggio qui.

Ottengo l'errore NumberFormatException quando provo a convertirlo.

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

Sto cercando di farlo in un onTouchListener. Ill pubblicare più codice, in pratica quando l'utente tocca la casella edittext voglio che le informazioni calcolino un riempimento nella casella di modifica.




Usando Double.toString (), se il numero è troppo piccolo o troppo grande, otterrai una notazione scientifica come questa: 3.4875546345347673E-6. Esistono diversi modi per avere maggiore controllo sul formato della stringa di output.

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

Usa String.format () sarà il modo migliore.




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

questo codice funziona




Usa la classe StringBuilder , in questo modo:

StringBuilder meme = new StringBuilder(" ");

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

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

Otterrai l'output desiderato.




double.toString() dovrebbe funzionare. Non la variabile tipo Double , ma la variabile stessa double .