Double avec . => bug
Résolu/Fermé
Heikronenfe
Messages postés
9
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
29 juin 2015
-
1 avril 2014 à 01:11
Heikronenfe Messages postés 9 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 29 juin 2015 - 1 avril 2014 à 13:19
Heikronenfe Messages postés 9 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 29 juin 2015 - 1 avril 2014 à 13:19
A voir également:
- Double avec . => bug
- Double ecran - Guide
- Bug yahoo mail - Accueil - Mail
- Whatsapp double sim - Guide
- Double appel - Guide
- Double authentification google - Guide
2 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 1/04/2014 à 07:58
Modifié par KX le 1/04/2014 à 07:58
Bonjour,
Ce n'est pas vraiment un bug, Java détecte que tu es français, or en France un nombre à virgule s'écrit... avec une virgule ! C'est ce que l'on appelle la localisation.
Du coup lorsque tu fais un nextDouble, le Scanner s'attend à avoir une valeur au format français, de même que le ferait Excel par exemple.
Si tu veux prendre des points à la place des virgules, il faut modifier le Scanner pour qu'il prenne en compte une langue où les nombres décimaux s'écrivent avec des points, par exemple l'anglais.
La confiance n'exclut pas le contrôle
Ce n'est pas vraiment un bug, Java détecte que tu es français, or en France un nombre à virgule s'écrit... avec une virgule ! C'est ce que l'on appelle la localisation.
Du coup lorsque tu fais un nextDouble, le Scanner s'attend à avoir une valeur au format français, de même que le ferait Excel par exemple.
Si tu veux prendre des points à la place des virgules, il faut modifier le Scanner pour qu'il prenne en compte une langue où les nombres décimaux s'écrivent avec des points, par exemple l'anglais.
Scanner sVal = new Scanner(System.in); // Locale.FRANCE par défaut double val = sVal.nextDouble(); // "2,3" System.out.printf("%f",val); // "2,300000" Scanner sVal = new Scanner(System.in).useLocale(Locale.ENGLISH); double val = sVal.nextDouble(); // "2.3" System.out.printf(Locale.ENGLISH,"%f",val); // "2.300000"
La confiance n'exclut pas le contrôle
Heikronenfe
Messages postés
9
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
29 juin 2015
1 avril 2014 à 13:19
1 avril 2014 à 13:19
Ok merci beaucoup !