2009-05-06 4 views
1

Je suis débutant et j'expérimente des sorties formatées.
Je suis en train de produire une table de décimales:Pourquoi cette sortie au format Java n'est-elle pas justifiée à droite?

for (int i = 0; i < 8; i++) { 
    for (int j = 0; j < 8; j++) { 
    row = (double) 5*i; 
    column = (double) j + 1; 
    System.out.format("% 6.3f", row/column); 
    System.out.print("\t"); 
    } 
    System.out.format("%n"); 
} 

Ce produit:

0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
5.000 2.500 1.667 1.250 1.000 0.833 0.714 0.625 
10.000 5.000 3.333 2.500 2.000 1.667 1.429 1.250 
15.000 7.500 5.000 3.750 3.000 2.500 2.143 1.875 
20.000 10.000 6.667 5.000 4.000 3.333 2.857 2.500 
25.000 12.500 8.333 6.250 5.000 4.167 3.571 3.125 
30.000 15.000 10.000 7.500 6.000 5.000 4.286 3.750 
35.000 17.500 11.667 8.750 7.000 5.833 5.000 4.375 

L'API dit que si le « - » indicateur n'est pas déclenchée, la sortie sera droite -justifié, c'est ce que je veux. J'ai mis '' après% pour indiquer que je veux que la sortie soit complétée avec des espaces si nécessaire. Qu'est-ce que je rate?

(je ne l'ai pas utilisé la balise devoirs, parce que je ne suis pas inscrit à un cours.)

Répondre

2

Vous avez ajouté un espace mal dans la mise en forme chaîne:

System.out.format("% 6.3f", row/column); 

devrait être:

System.out.format("%6.3f", row/column); 

Et vous obtenez:

0.000   0.000   0.000   0.000   0.000   0.000   0.000   0.000   
5.000   2.500   1.667   1.250   1.000   0.833   0.714   0.625   
10.000   5.000   3.333   2.500   2.000   1.667   1.429   1.250   
15.000   7.500   5.000   3.750   3.000   2.500   2.143   1.875   
20.000  10.000   6.667   5.000   4.000   3.333   2.857   2.500   
25.000  12.500   8.333   6.250   5.000   4.167   3.571   3.125   
30.000  15.000  10.000   7.500   6.000   5.000   4.286   3.750   
35.000  17.500  11.667   8.750   7.000   5.833   5.000   4.375 
+0

Merci beaucoup. –

+0

Aucun problème mate :) – willcodejavaforfood

Questions connexes