Je ne suis pas sûr que ce soit moi ou quoi, mais j'ai un problème pour convertir un double en chaîne.
voici mon code:
double total = 44;
String total2 = Double.toString(total);
Suis-je en train de faire quelque chose de mal ou manque-t-il une étape ici.
Je reçois une erreur NumberFormatException
lors de la tentative de conversion.
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;
}
});
J'essaie de le faire dans un onTouchListener. Je posterai plus de code, essentiellement lorsque l'utilisateur touche la zone edittext, je veux que les informations calculent un remplissage de la zone edittext.
Réponses:
Cela convertira le double en chaîne
la source
NumberFormat fmt = NumberFormat.getInstance(); fmt.setGroupingUsed(false); fmt.setMaximumIntegerDigits(999); fmt.setMaximumFractionDigits(999);
alors utiliseztotal2 = fmt.format(total)
Double.toString()
. Je ne sais pas comment cela répond à la question.En utilisant Double.toString (), si le nombre est trop petit ou trop grand, vous obtiendrez une notation scientifique comme celle-ci: 3.4875546345347673E-6. Il existe plusieurs façons d'avoir plus de contrôle sur le format de la chaîne de sortie.
Utilisez String.format () sera le meilleur moyen pratique.
la source
Ce code se compile et fonctionne pour moi. Il convertit un double en chaîne en utilisant les appels que vous avez essayés.
Je suis perplexe en voyant l'Exception NumberFormatException. Regardez la trace de la pile. Je suppose que vous avez un autre code que vous ne montrez pas dans votre exemple, ce qui provoque la levée de cette exception.
la source
L'exception vient probablement des appels parseDouble (). Vérifiez que les valeurs données à cette fonction reflètent réellement un double.
la source
Ça marche. doit être répétitif.
la source
Kotlin
Vous pouvez utiliser
.toString
directement sur n'importe quel type de données dans kotlin, commela source
ce code fonctionne
la source
Double.toString()
appelsString.valueOf(double)
qui appelleDouble.toString(double)
. Fou, hein?L'un d'eux lève l'exception. Vous devez ajouter une journalisation / impression pour voir ce qui se trouve
volGal
etpriceGal
- ce n'est pas ce que vous pensez.la source
String
s n'est pas une représentation valide d'un,double
c'est pourquoi vous obtenez cette exception.Double.toString(total);
ne peut pas lever d'exception. Déjà. . Vous avez changé cenew Double(total).toString();
qui ne peut pas non plus et si vous voyez ici la réponse qui a été rejetée, ce n'est jamais quelque chose que vous voulez faire.double.toString()
devrait marcher. Pas le type de variableDouble
, mais la variable elle-mêmedouble
.la source
Utilisez simplement ce qui suit:
Cela fonctionnera pour tout type de données.
Exemple:
la source
Utilisez la
StringBuilder
classe, comme ceci:Vous obtiendrez la sortie souhaitée.
la source
Et quand vous faites le
Tu fais juste
Où le "" + <variable> le convertira automatiquement en chaîne
la source
Information complète
Vous pouvez utiliser String.valueOf () pour float, double, int, boolean etc.
la source
Il existe trois façons de convertir le double en chaîne .
"" + d
classe public DoubleToString {
}
Chaîne à doubler
la source