0
votes

Comment changer un double en chaîne

J'ai une application qui affiche une chaîne dans un EditText, cette chaîne est le résultat du fonctionnement de deux autres types d'utilisateurs dans deux editexts différents. Le problème est que je souhaite que le résultat de l'opération soit indiqué dans le troisième editext, mais pour cela, il doit être une chaîne. Par conséquent, je change le résultat par la méthode de totring.

Le problème commence ici, je veux que le double qui soit une chaîne pour avoir une seule décimale. Pour cela, j'ai utilisé décimalformat et j'ai créé le format DF "#. #". Et puis j'ai changé le texte qui serait affiché dans le dernier editext à la nouvelle double variable avec une seule décimale (de la modification évidente en string). P>

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.bmicalculator, PID: 19058
    java.lang.NumberFormatException: For input string: "24,2"
        at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)


2 commentaires

Eh bien, en fonction de la locale de l'appareil, l'entrée "24,2" pourrait ne pas être un nombre valide. Pouvez-vous vérifier la locale pour nous?


Certains des locaux utilisent la virgule comme séparateur décimal et votre appareil pourrait utiliser une partie de ces paramètres régionaux. Pl Vérifiez ceci donc Question .


3 Réponses :


-1
votes
double BMI_trimmed = Double.parseDouble(df.format(BMI));
String yourResult = String.valueOf(BMI_trimmed);  
Happy coding

0 commentaires

1
votes

Vous obtenez déjà la valeur arrondie comme vous le souhaitez et en tant que chaîne du formateur. N'essayez pas de l'analyser, affichez-le simplement.

BMIResult.setText(df.format(BMI));


0 commentaires

0
votes

Le problème est probablement votre lieu local de téléphone. Certains téléphones utilisent. comme séparateur et certains utilisent, comme séparateur. Essayez de remplacer tout "," avec "." avant de manifester de la chaîne à doubler.

Essayez également d'utiliser cette réponse: https://stackoverflow.com/a/7559011/2249224


0 commentaires