Println un nombre sur x unités

Signaler
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
27 mai 2007
-
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
27 mai 2007
-
Bonjour,
Comment fait-on pour imprimer un nombre sur x chiffres ? Quel est l'équivalent de printf("%02u", a); en langage c en Java ?
Si je fais ça  en Java, j'ai le droit à un java.util.UnknownFormatConversionException.
Merci pour vos réponses.

4 réponses

Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007

Bonjour,

Ca peut se programmer ca:
StringBuffer sb = new StringBuffer( );
while (n!=0) {
char digit = n%10;
n = n/10;
digit = digit+'0';
 sb.append(digit);
 }
sb.reverse( );
return sb.toString( );

=
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
27 mai 2007

J'ai essayé de l'adapter de la façon suivante mais ça ne marche pas bien.
                StringBuffer sb = new StringBuffer( );
                int n=nb;
                while (n!=0) {
                    int x = n%10;
                String digit = java.lang.String.valueOf(x);
                    System.out.println("x vaut"+x);
                n = n/10;
                digit = "0"+digit;
                 sb.append(digit);
                 }
                sb.reverse( );
                System.out.println("sb:"+ sb);

Le 0 se trouve après. J'ai réussi à me débrouiller autrement avec un if(a<10) on ajoute un 0, mais en fait je pensais que ça pouvait être géré directement puisque en C ça l'est. Donc apparemment il faut faire une fonction exprès en Java....
Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007

RE

y'avait pas besoin d'adapter c'etait deja du java

=
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
27 mai 2007

Je voulais dire adapter pour faire qqch qui se compile. Parcequ'il n'aime pas trop les nombres non déclarés et le calcul char digit = n%10; la conversion du int en char, il est pas content...
En plus n = n/10; dans le while ça me fais une répétition du style 3030 au lieu de 003.