Doubles, virgules et points
Je suis en train de faire un Android programme Java qui est de prendre de doubles valeurs de l'utilisateur. Si je lance le programme sur l'ordinateur, il fonctionne très bien raison de la localisation de mon ordinateur, FR. Mais quand je le lance sur mon téléphone portable avec FI_FI locale, ça ne marchera pas. Je connais la raison: Au royaume-UNI les gens utilisent le point comme séparateur décimal, mais ici en Finlande, le séparateur décimal est la virgule.
DecimanFormat df = new DecimalFormat("#.#");
Double returnValue = Double.valueOf(df.format(doublenumber));
Quand je suis en utilisant la virgule, il est dit java.lang.NumberFormatException: Invalid double: "1234,5"
.
Comment puis-je le faire fonctionner avec eux à la fois, la virgule et le point?
source d'informationauteur MikkoP
Vous devez vous connecter pour publier un commentaire.
Utiliser l'une des autres constructeurs de DecimalFormat:
Et puis essayer de l'analyser en utilisant les deux séparateurs.
à l'aide de
DecimalFormatSymbols.getInstance()
produira les paramètres régionaux par défaut de symboles appropriés, de sorte que vous obtiendrez les meilleurs résultats de la plate-forme que vous exécutez sur.Devrait fonctionner pour les deux Java(Testé) ainsi que sur android 🙂
Nom De La Classe: In18Helper.java
Nom De La Classe: Application.java
Sortie:
Trial Value: 1.034567 for Locale: en converted to: 1.034567
Trial Value: 1,0345.67 for Locale: en converted to: 10345.67
Trial Value: 1.0345,67 for Locale: de_DE converted to: 10345.67
Trial Value: 1,034,567 for Locale: en_CA converted to: 1034567.0
Trial Value: 1.034567 for Locale: ko_KR converted to: 1.034567
Trial Value: 1,03.4567 for Locale: it_IT converted to: 1.03
Espère que cela va aider quelqu'un à faire usage de.
Pas une meilleure façon, mais il a travaillé pour moi;
M'Erreur:
... et ce travail pour moi