web-dev-qa-db-de.com

Konvertierung von Double in String

Ich bin nicht sicher, ob es mir oder was ist, aber ich habe ein Problem beim Konvertieren eines Double in einen String.

hier ist mein code:

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

Mache ich etwas falsch oder vermisse ich hier einen Schritt.

Ich erhalte die Fehlermeldung NumberFormatException, wenn ich versuche, dies zu konvertieren.

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

Ich versuche dies in einem onTouchListener. Wenn ich mehr Code schreibe, sollte der Benutzer die Edittext-Box anfassen. Ich möchte, dass die Informationen die Edittext-Box berechnen.

185
Brandon Wilson
double total = 44;
String total2 = String.valueOf(total);

Dadurch wird double in String konvertiert

430

Mit Double.toString () erhalten Sie, wenn die Zahl zu klein oder zu groß ist, eine wissenschaftliche Notation wie folgt: 3.4875546345347673E-6. Es gibt mehrere Möglichkeiten, das Format der Ausgabezeichenfolge besser zu steuern. 

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

Verwenden Sie String.format (), ist der beste Weg. 

15
Nicholas Lu

Dieser Code kompiliert und funktioniert für mich. Es konvertiert ein Double in eine Zeichenfolge mit den Anrufen, die Sie versucht haben.

public class TestDouble {

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

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

Ich bin verwirrt, wenn Sie die NumberFormatException sehen. Schauen Sie sich die Stapelverfolgung an. Ich vermute, Sie haben anderen Code, den Sie in Ihrem Beispiel nicht anzeigen, wodurch die Ausnahme ausgelöst wird. 

14
ditkin

Die Ausnahme stammt wahrscheinlich von den parseDouble () - Aufrufen. Stellen Sie sicher, dass die Werte, die für diese Funktion angegeben werden, wirklich ein Doppel darstellen. 

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

es klappt. muss sich wiederholen.

3
agon

Kotlin

Sie können .toString direkt für jeden Datentyp in kotlin verwenden, z

val d : Double = 100.00
val string : String = d.toString()
1
Khemraj
double priceG = Double.parseDouble(priceGal.getText().toString());
double valG = Double.parseDouble(volGal.toString());

Eine davon wirft die Ausnahme. Sie müssen etwas Protokollieren/Drucken hinzufügen, um zu sehen, was in volGal und priceGal ist - es ist nicht das, was Sie denken. 

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

dieser Code funktioniert

1
olyanren

double.toString() sollte funktionieren. Nicht der Variablentyp Double, sondern die Variable selbst double.

1
Matt F.

Wie wäre es wenn du das machst 

totalCost.setText(tot);

Du machst es einfach 

totalCost.setText( "" + total );

Wo "" + <Variable> es automatisch in String konvertiert

0

Verwenden Sie die StringBuilder-Klasse wie folgt:

StringBuilder meme = new StringBuilder(" ");

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

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

Sie erhalten die gewünschte Ausgabe.

0

Komplette Info

Sie können String.valueOf () für float, double, int, boolean usw. verwenden.

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);
0
Khemraj

Verwenden Sie einfach das Folgende:

doublevalue+""; 

Dies funktioniert für jeden Datentyp.

Beispiel:

Double dd=10.09;
String ss=dd+"";
0
Rahul Purohit