Println un nombre sur x unités

rompiflor Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 27 mai 2007 - 27 mai 2007 à 10:57
rompiflor Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 27 mai 2007 - 27 mai 2007 à 17:38
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

The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
27 mai 2007 à 13:54
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( );

=
0
rompiflor Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 27 mai 2007
27 mai 2007 à 15:50
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....
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
27 mai 2007 à 17:31
RE

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

=
0
rompiflor Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 27 mai 2007
27 mai 2007 à 17:38
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.
0