Affichage d'un int en java

Fermé
fizan - 23 nov. 2007 à 22:52
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 24 nov. 2007 à 15:38
Bonjour,

J'ai un probleme d'affichage pour un int en Java. En fait je voudrais afficher un int sur 6 chiffres.
Par exemple j'ai une variable:

int codebarre = 000001;
System.out.print(codebarre);

et je voudrais que ca affiche 000001 et pas une 1 à l'écran sachant que je j'aimerai autant que possible ne pas passer par un String. Si quelqu'un pouvai m'aiser ca serai génial ^^

merci
A voir également:

6 réponses

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
24 nov. 2007 à 00:29
Bonsoir,

Avec seul un type primitif entier c'est impossible à réaliser. A mon sens tu peux au maximum connaître le nombre de caractères occupés par le nombre en notation décimale en procédant par divisions (je donne juste l'idée) mais il n'empêche que pour l'affichage tu devras concaténer autant de 0 qu'il manque pour faire un total de 6 => String oblige

Je viens de tomber sur la présentation de la classe DecimalFormat (http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html), une petite recherche sur google devrait t'en montrer l'usage... mais aux mieux ça te renvoie un StringBuffer. =>toString() oblige

Le formatage d'un nombre passe obligatoirement par un String, tu n'as pas d'autre option... ça ne s'appellerait pas formatage sinon ;-) Sans compter que même un type primitif, à l'affichage (que ce soit dans la console ou dans un composant graphique) doit être transformé en String par un moyen ou un autre (faire "plop"+1 crée une chaîne "plop", transforme l'int 1 en String et les concatène), donc ne te prive pas d'utiliser un String c'est une classe incontournable.
0
oki merci pour ton aide je pense que je vais finalement passer par un string pour afficher ^^
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
24 nov. 2007 à 15:05
System.out.printf("%06d",1) devrait faire l'affaire
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
24 nov. 2007 à 15:29
Salut Vignemail1,

Je ne trouve pas de méthode printf(String format, int number) dans System.out... tu confonds peut-être avec le printf du C ?

EDIT : Au temps pour moi, ça existe bel et bien j'en reste sur le popotin on en apprend tous les jours ^^

Belle illustration ici :

http://www.java2s.com/Code/JavaAPI/java.lang/Systemoutprintf03dinti.htm

Bref, ça reste "similaire" à la pratique du DecimalFormat mais c'est bien plus pratique pour un affichage direct dans une console. Ca alors ! :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
24 nov. 2007 à 15:35
System.out est un PrintStream
regarde la méthode public PrintStream printf(String format,Object... args)
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
24 nov. 2007 à 15:38
Ils ont dû oublier de la mettre dans la doc (enfin la 1.4.2) :

http://java.sun.com/j2se/1.4.2/docs/api/java/io/PrintStream.html

EDIT : Décidément c'est la journée des perles... si elle ne figure pas dans la 1.4.2 c'est qu'elle n'existait pas encore. Elle ne l'est qu'à partir de Java 5 (1.5).

https://docs.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html

Donc voilà le débat se situe maintenant au niveau de la compatibilité avec les anciennes versions de la JVM.
0