Ich bin nicht sicher, ob ich es bin oder was, 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 verpasse ich hier einen Schritt?
NumberFormatException
Beim Versuch, dies zu konvertieren , wird eine Fehlermeldung angezeigt.
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 zu tun. Ich werde mehr Code posten. Wenn der Benutzer das Edittext-Feld berührt, möchte ich, dass die Informationen das Edittext-Feld ausfüllen.
Antworten:
Dadurch wird double in String konvertiert
quelle
NumberFormat fmt = NumberFormat.getInstance(); fmt.setGroupingUsed(false); fmt.setMaximumIntegerDigits(999); fmt.setMaximumFractionDigits(999);
dann verwendentotal2 = fmt.format(total)
Double.toString()
. Ich bin mir nicht sicher, wie es die Frage beantwortet.Wenn Sie mit Double.toString () zu klein oder zu groß sind, erhalten Sie eine wissenschaftliche Notation wie folgt: 3.4875546345347673E-6. Es gibt verschiedene Möglichkeiten, das Format der Ausgabezeichenfolge besser zu steuern.
Die Verwendung von String.format () ist der bequemste Weg.
quelle
Dieser Code kompiliert und funktioniert für mich. Mit den von Ihnen versuchten Aufrufen wird ein Double in einen String konvertiert.
Ich bin verwirrt darüber, dass Sie die NumberFormatException sehen. Schauen Sie sich die Stapelverfolgung an. Ich vermute, Sie haben anderen Code, den Sie in Ihrem Beispiel nicht anzeigen, wodurch diese Ausnahme ausgelöst wird.
quelle
Die Ausnahme kommt wahrscheinlich von den parseDouble () -Aufrufen. Überprüfen Sie, ob die für diese Funktion angegebenen Werte wirklich ein Doppel widerspiegeln.
quelle
Es klappt. muss sich wiederholen.
quelle
Kotlin
Sie können
.toString
direkt auf jeden Datentyp in Kotlin verwenden, wie zquelle
Dieser Code funktioniert
quelle
Double.toString()
ruftString.valueOf(double)
welche Anrufe anDouble.toString(double)
. Verrückt, was?Eine davon ist die Ausnahme. Sie müssen etwas Protokollierung / Druck hinzufügen, um zu sehen, was drin ist
volGal
undpriceGal
- es ist nicht das, was Sie denken.quelle
String
s ist keine gültige Darstellung von adouble
, weshalb Sie diese Ausnahme erhalten.Double.toString(total);
kann keine Ausnahme auslösen. Je. . Sie haben das geändert,new Double(total).toString();
was auch nicht möglich ist, und wenn Sie hier die Antwort sehen, die abgelehnt wurde, ist dies nichts, was Sie jemals tun möchten.double.toString()
sollte arbeiten. Nicht der VariablentypDouble
, sondern die Variable selbstdouble
.quelle
Verwenden Sie einfach Folgendes:
Dies funktioniert für jeden Datentyp.
Beispiel:
quelle
Verwenden Sie
StringBuilder
Klasse wie folgt:Sie erhalten die gewünschte Ausgabe.
quelle
Wie wäre es, wenn Sie das tun
Du tust es einfach
Wobei das "" + <Variable> es automatisch in einen String konvertiert
quelle
Vollständige Info
Sie können String.valueOf () für float, double, int, boolean usw. verwenden.
quelle
Es gibt drei Möglichkeiten, double in String umzuwandeln .
"" + d
öffentliche Klasse DoubleToString {
}}
String zum Verdoppeln
quelle