Java:
public class Hello
{
public static void main(String[] args)
{
float x = -1283.56789f, y = 9.87654321f;
double a = 3., b = .2;
System.out.printf("%f // %.2f // %12.4fab%%\n", x, y, x);
System.out.printf("%8.2f // %+-12.3f // %.3f\n", a, b, a);
System.out.printf("Achtung: %6f %.6f\n", a, a);
}
}
$ java Test
-1283,567871 // 9,88 // -1283,5679ab%
3,00 // +0,200 // 3,000
Achtung: 3,000000 3,000000
Frage:
Warum wird in der Ausgabe für
angezeigt, anstattSystem.out.printf("%f // %.2f // %12.4fab%%\n", x, y, x);
$ java Test
-1283,567871 // 9,88 // -1283,5679ab%
System.out.printf("%f // %.2f // %12.4fab%%\n", x, y, x);
$ java Test
-1283,567890// 9,88 // -1283,5679ab%
Was ich zu wissen glaube ist: bei der printf werden, wenn nicht in %f anders angegeben, immer mindestens 6 Nachkommastellen für float und double Zahlen angezeigt. Somit wäre ja 3.0 in %f dann 3.000000 (Wie in dem Code in letzter Zeile "Achtung....")
Wieso wird hier dann jedoch nicht auch x in der Ausgabe mit Nullern aufgefüllt. Woher kommen diese Nachkommastellen auf einmal?
Zuletzt bearbeitet: