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)
3 Réponses :
double BMI_trimmed = Double.parseDouble(df.format(BMI)); String yourResult = String.valueOf(BMI_trimmed); Happy coding
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));
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. p>
Essayez également d'utiliser cette réponse: https://stackoverflow.com/a/7559011/2249224 p>
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 .