Afficher un double avec 0 (s'il est entier) ou 2 décimales
Résolu/Fermé
sylent84
Messages postés
3
Date d'inscription
vendredi 9 août 2013
Statut
Membre
Dernière intervention
10 août 2013
-
9 août 2013 à 08:53
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 10 août 2013 à 12:05
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 10 août 2013 à 12:05
A voir également:
- Afficher un double en c
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double appel - Guide
- Afficher mot de passe wifi android - Guide
- Double authentification google - Guide
3 réponses
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
9 août 2013 à 11:42
9 août 2013 à 11:42
Bonjour,
Tu peux convertir ton double en String, puis dans un try/ catch faire un parseInt de ta String.
Passer dans le catch
<=> ta chaîne t'es pas un int
<=> ta chaîne peut-être un double
Pour choisir le nombre de chiffres après la virgule, si je me rapelle bien,
les doubles ont la méthode
Tu peux convertir ton double en String, puis dans un try/ catch faire un parseInt de ta String.
Passer dans le catch
<=> ta chaîne t'es pas un int
<=> ta chaîne peut-être un double
Pour choisir le nombre de chiffres après la virgule, si je me rapelle bien,
les doubles ont la méthode
setMaximumFractionDigits(int nb_chiffre_apres_la_vigule);
sylent84
Messages postés
3
Date d'inscription
vendredi 9 août 2013
Statut
Membre
Dernière intervention
10 août 2013
9 août 2013 à 11:55
9 août 2013 à 11:55
Merci de ta réponse mais je viens de trouver quelques secondes avant en fait :
final DecimalFormat decimalFormat = new DecimalFormat(); final DecimalFormatSymbols s = decimalFormat.getDecimalFormatSymbols(); s.setGroupingSeparator(' '); s.setDecimalSeparator(','); decimalFormat.setMinimumFractionDigits(0); decimalFormat.setMaximumFractionDigits(2); decimalFormat.setDecimalFormatSymbols(s); String nombre=decimalFormat.format(value); if(nombre.indexOf(",")!=-1 && nombre.length()==nombre.indexOf(",")+2){ return nombre.concat("0"); }else{ return nombre; }
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
9 août 2013 à 19:06
9 août 2013 à 19:06
Il y a encore plus simple :
System.out.printf("%.2f",200.3); // 200.30Ou en version String :
String str = String.format("%.2f",200.3); // 200.30
sylent84
Messages postés
3
Date d'inscription
vendredi 9 août 2013
Statut
Membre
Dernière intervention
10 août 2013
10 août 2013 à 11:26
10 août 2013 à 11:26
Ça ne m'aurait pas permis d'afficher 200 lorsque l'utilisateur saisit 200.0 ou 200.00
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
10 août 2013 à 12:05
10 août 2013 à 12:05
Au temps pour moi, j'avais mal compris, cependant ça pourras toujours être utile de savoir que ça existe, c'est très utile, voici comment on pourrait faire :
public static String format(double d) { String s = String.format(Locale.FRENCH, "%,.2f", d); int n = s.indexOf(","); if (n != -1 && s.substring(n).equals(",00")) return s.substring(0, n); else return s; } public static void main(String[] args) { System.out.println(format(1.23)); // "1,23" System.out.println(format(100000)); // "100 000" System.out.println(format(12345.6789)); // "12 345,68" }