[gelöst]Integer Variable mit falschem Wert



  • Hi...

    ich habe folgendes Problem. Ich möchte mit einer Uhrzeit, welche im Format

    HHMM
    

    vorliegt (z.B. 2015) rechnen.

    Ich möchte 10 Minuten abziehen. Also habe ich folgenden Code:

    int zeit = 2015;
    int zeitDiff = 10;
    int neueZeit;
    
    neueZeit = zeit - zeitDiff;
    

    Ergebnis:

    2005
    

    Nun habe ich

    int zeit = 0015
    

    Normalerweise sollte

    0005
    

    als Ergebnis herauskommen, aber leider bekomme ich

    3
    

    ?!?!?

    Wie kann das sein? Hat das was mit den Nullen am Anfang zu tun? Lösungsmöglichkeiten?

    Gruß Andreas



  • Wenn ein int-Literal mit einer 0 anfängt, wird es als Zahl im Oktalsystem behandelt. Lass die führenden Nullen weg.



  • Ok...

    also gibt es da keine andere Möglichkeit, dass Integer das immer als Dezimalzahl interpretiert...denn die Daten kommen aus einer Datei.

    Ich müsste also irgendwie vor der Berechnung die Nullen abschneiden?



  • gismo82 schrieb:

    also gibt es da keine andere Möglichkeit, dass Integer das immer als Dezimalzahl interpretiert...denn die Daten kommen aus einer Datei.

    Das passiert nur, wenn die Zahl direkt im Quellcode steht. Ansonsten musst du ja sowieso selbst von String in Zahl umwandeln.



  • Alles klar...dankeschön.

    Ich habs nun nochmal direkt nach der Umwandlung von String nach Int probiert, und nun hats funktioniert...

    Nochmal danke...

    Gruß Andreas


Log in to reply