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);
Est-ce que je fais quelque chose de mal ou est-ce que je manque une étape ici.
J'obtiens l'erreur NumberFormatException
en essayant de convertir ceci.
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 faire cela dans un onTouchListener. Ill poster plus de code, essentiellement lorsque l'utilisateur touche la boîte de texte, je veux que l'information calcule un remplissage de la boîte de texte.
double total = 44;
String total2 = String.valueOf(total);
Cela convertira le double en chaîne
Si vous utilisez 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.
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
Utiliser String.format () sera le meilleur moyen pratique.
Ce code compile et fonctionne pour moi. Il convertit un double en chaîne en utilisant les appels que vous avez essayés.
public class TestDouble {
public static void main(String[] args) {
double total = 44;
String total2 = Double.toString(total);
System.out.println("Double is " + total2);
}
}
Je suis intrigué par votre vision de 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 et qui provoque la levée de cette exception.
L'exception provient probablement des appels parseDouble (). Vérifiez que les valeurs données à cette fonction reflètent réellement un double.
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());
Ça marche. faut être répétitif.
Vous pouvez utiliser .toString
directement sur tout type de données dans kotlin, comme
val d : Double = 100.00
val string : String = d.toString()
double priceG = Double.parseDouble(priceGal.getText().toString());
double valG = Double.parseDouble(volGal.toString());
L'un d'entre eux lance l'exception. Vous devez ajouter une certaine journalisation/impression pour voir ce qu'il y a dans volGal
et priceGal
- ce n'est pas ce que vous pensez.
double total = 44;
String total2= new Double(total).toString();
ce code fonctionne
double.toString()
devrait fonctionner. Pas le type de variable Double
, mais la variable elle-même double
.
Que diriez-vous quand vous faites le
totalCost.setText(tot);
Tu fais juste
totalCost.setText( "" + total );
Où "" + <variable> le convertira automatiquement en chaîne
Utilisez la classe StringBuilder
, comme suit:
StringBuilder meme = new StringBuilder(" ");
// Convert and append your double variable
meme.append(String.valueOf(doubleVariable));
// Convert string builder to string
jTextField9.setText(meme.toString());
Vous obtiendrez la sortie souhaitée.
Vous pouvez utiliser String.valueOf () pour float, double, int, boolean, etc.
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);
Il suffit d'utiliser ce qui suit:
doublevalue+"";
Cela fonctionnera pour tout type de données.
Exemple:
Double dd=10.09;
String ss=dd+"";