Falsches Ergebnis bei Rechnung

malte9669

Neues Mitglied
Ich habe bei Java eine simple Rechnung gemacht, aber das ergebnis macht überhaupt 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 :/
 

Zurück
Oben