Ich habe bei Java eine simple Rechnung gemacht, aber das ergebnis macht überhaupt keinen Sinn.
Als Ergebnis erhalte ich:
x = 1.0
y = 1.0
x = 1.2000000000000002
y = 1.3
Wieso ist x nach der Rechnung so eine seltsame Kommazahl und nicht einfach 1.2?
Auch bei einer weitergehenden Rechnung ist dies so:
Hier erhalte ich:
z1 vor i = 1.0
z1 bei i0 = 1.1
z1 bei i1 = 1.2000000000000002
z1 bei i2 = 1.3000000000000003
z1 bei i3 = 1.4000000000000004
z1 bei i4 = 1.5000000000000004
z1 bei i5 = 1.6000000000000005
z1 bei i6 = 1.7000000000000006
z1 nach i = 1.7000000000000006
z2 vor i = 1.0
z2 bei i0 = 1.2
z2 bei i1 = 1.4
z2 bei i2 = 1.5999999999999999
z2 bei i3 = 1.7999999999999998
z2 nach i = 1.7999999999999998
Wieso? Das macht doch gar keinen Sinn :/
Java:
public class Test {
public static void main(String[] args) {
double x = 1.0;
double y = 1.0;
System.out.println("x = " + x);
System.out.println("y = " + y);
x = x + 0.1;
x = x + 0.1;
System.out.println("");
y = y + 0.1;
y = y + 0.2;
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}
Als Ergebnis erhalte ich:
x = 1.0
y = 1.0
x = 1.2000000000000002
y = 1.3
Wieso ist x nach der Rechnung so eine seltsame Kommazahl und nicht einfach 1.2?
Auch bei einer weitergehenden Rechnung ist dies so:
Java:
public class Test {
public static void main(String[] args) {
double z1 = 1.0;
System.out.println("z1 vor i = " + z1);
for (int i = 0; i < 7; i++) {
z1 += 0.1;
System.out.println("z1 bei i" + i + " = " + z1);
}
System.out.println("z1 nach i = " + z1);
System.out.println("");
double z2 = 1.0;
System.out.println("z2 vor i = " + z2);
for (int i = 0; i < 4; i++) {
z2 += 0.2;
System.out.println("z2 bei i" + i + " = " + z2);
}
System.out.println("z2 nach i = " + z2);
}
}
Hier erhalte ich:
z1 vor i = 1.0
z1 bei i0 = 1.1
z1 bei i1 = 1.2000000000000002
z1 bei i2 = 1.3000000000000003
z1 bei i3 = 1.4000000000000004
z1 bei i4 = 1.5000000000000004
z1 bei i5 = 1.6000000000000005
z1 bei i6 = 1.7000000000000006
z1 nach i = 1.7000000000000006
z2 vor i = 1.0
z2 bei i0 = 1.2
z2 bei i1 = 1.4
z2 bei i2 = 1.5999999999999999
z2 bei i3 = 1.7999999999999998
z2 nach i = 1.7999999999999998
Wieso? Das macht doch gar keinen Sinn :/