Bonjour.
Je suis novice++ en java et je tente doucement de me former...
Après avoir suivit un tuto sur les différents format de printf, je me suis aperçu que mon séparateur de groupage affiche le caractère '?'.
C'est d'ailleurs ce qu'il affiche aussi pour Maths.PI, donc si j'ai bien compris, ma police par défaut n'est pas UNICO... c'est un autre pb (quye je ne sais pas non
Voici le code de base :
Qui m'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int price = 1_234_567_890; System.out.println( "Exemple d'affichage de nombres selon la localisation : "); System.out.printf( "Affichage par defaut : %,d\n", price ); System.out.printf( new Locale( "fr", "FR" ), "Affichage France : %,d\n", price ); System.out.printf( new Locale( "en", "US" ), "Affichage USA : %,d\n", price ); System.out.printf( new Locale( "it", "IT" ), "Affichage Italie : %,d\n", price );Je sais que ce code marche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Affichage par defaut : 1?234?567?890 Affichage France : 1?234?567?890 Affichage USA : 1,234,567,890 Affichage Italie : 1.234.567.890
Mais ici format.format(number) est un string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 DecimalFormat format = new DecimalFormat(); // c'est pas necessaire de mettre 3 blocs mais je me rappelle plus la syntaxe exacte DecimalFormatSymbols s = format.getDecimalFormatSymbols(); s.setGroupingSeparator(' '); format.setDecimalFormatSymbols(s); int number = 123456789; System.out.println(format.format(number));
Ma question est : comment modifier le setGroupingSeparator pour que, en tapant
j'ai bien 1 234 567 890 ou 1*234*567*890 qui soit affiché à ma gise quand j'utilise la fonction printf avec l'option %,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int price = 1_234_567_890; System.out.printf( Locale.getDefault(), "Affichage par défaut : %,d\n", price );
s.setGroupingSeparator(' ') modifie l'objet DecimalFormatSymbols mais comment rattacher cet objet à Locale.getDefault() ?
J'ai relut la javadoc , mais je ne suis pas assez allaise pour réussir à trouver la réponse...
https://docs.oracle.com/javase/8/docs/api/index.html
Et pour ne pas paraitre ridicule, je ne dirais pas depuis combien de temps je bloque la dessus...
Dans l'attente de vos conseils et en vous remerciant
Partager