Voici mon code (enfin, une partie). La question que je me pose est la suivante: puis-je obtenir les 9 premiers chiffres avec un 00 en tête et les chiffres 10 à 99 avec un 0 en tête?.
Je dois montrer tous les 360 paiements mensuels, mais si je n'ai pas tous les chiffres du mois à la même longueur, alors je me retrouve avec un fichier de sortie qui continue de se déplacer vers la droite et qui compense l'aspect de la sortie.
System.out.print((x + 1) + " "); // the payment number
System.out.print(formatter.format(monthlyInterest) + " "); // round our interest rate
System.out.print(formatter.format(principleAmt) + " ");
System.out.print(formatter.format(remainderAmt) + " ");
System.out.println();
Résultats:
8 $951.23 $215.92 $198,301.22
9 $950.19 $216.95 $198,084.26
10 $949.15 $217.99 $197,866.27
11 $948.11 $219.04 $197,647.23
Ce que je veux voir c'est:
008 $951.23 $215.92 $198,301.22
009 $950.19 $216.95 $198,084.26
010 $949.15 $217.99 $197,866.27
011 $948.11 $219.04 $197,647.23
De quel autre code avez-vous besoin dans ma classe pour vous aider?
Puisque vous utilisez des formateurs pour le reste, utilisez simplement DecimalFormat:
import Java.text.DecimalFormat;
DecimalFormat xFormat = new DecimalFormat("000")
System.out.print(xFormat.format(x + 1) + " ");
Alternative vous pouvez faire tout le travail dans toute la ligne en utilisant printf:
System.out.printf("%03d %s %s %s \n", x + 1, // the payment number
formatter.format(monthlyInterest), // round our interest rate
formatter.format(principleAmt),
formatter.format(remainderAmt));
Puisque vous utilisez Java, printf
est disponible à partir de la version 1.5.
Vous pouvez l'utiliser comme ça
System.out.printf("%03d ", x);
Par exemple:
System.out.printf("%03d ", 5);
System.out.printf("%03d ", 55);
System.out.printf("%03d ", 555);
Te donnera
005 055 555
en sortie
Utilisez System.out.format
Quelque chose aime ça
public void testPrintOut() {
int val1 = 8;
String val2 = "$951.23";
String val3 = "$215.92";
String val4 = "$198,301.22";
System.out.println(String.format("%03d %7s %7s %11s", val1, val2, val3, val4));
val1 = 9;
val2 = "$950.19";
val3 = "$216.95";
val4 = "$198,084.26";
System.out.println(String.format("%03d %7s %7s %11s", val1, val2, val3, val4));
}
Êtes-vous sûr de vouloir "055" par opposition à "55"? Certains programmes interprètent un zéro initial comme signifiant octal, de sorte qu'il se lirait comme 055 comme (décimal) 45 au lieu de (décimal) 55.
Cela devrait simplement signifier l’abandon du drapeau «0» (remplissage zéro).
par exemple, remplacez System.out.printf("%03d ", x);
par la plus simple System.out.printf("%3d ", x);
Utilisez simplement \t
pour l’espacer.
Exemple:
System.out.println(monthlyInterest + "\t")
//as far as the two 0 in front of it just use a if else statement. ex:
x = x+1;
if (x < 10){
System.out.println("00" +x);
}
else if( x < 100){
System.out.println("0" +x);
}
else{
System.out.println(x);
}
Il y a d'autres façons de le faire, mais c'est la plus simple.