Posez votre question Signaler

Affichage d'un int en java

fizan - Dernière réponse le 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
Lire la suite 

Affichage d'un int en java »

6 réponses
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
oki merci pour ton aide je pense que je vais finalement passer par un string pour afficher ^^
Ajouter un commentaire
Réponse
+0
moins plus
System.out.printf("%06d",1) devrait faire l'affaire
Ajouter un commentaire
Réponse
+0
moins plus
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 ! :-)
Ajouter un commentaire
Réponse
+0
moins plus
System.out est un PrintStream
regarde la méthode public PrintStream printf(String format,Object... args)
Ajouter un commentaire
Réponse
+0
moins plus
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).

http://java.sun.com/j2se/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.
Ajouter un commentaire
Ce document intitulé « affichage d'un int en java » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?