Hallo, die folgenden beiden Methoden zeigen ein Verhalten, dass ich mir nicht wirklich erklären kann:
Gibt 17777 zurück und nicht wie erwartet 66666. Dabei scheint beim berechnen während des zurückgebens schief zu laufen. Führt man die Addition irgendwo anders durch funktioniert alls wie erwartet.
Gibt 5 zurück. Was daran liegt, dass MICROS_PER_DAY als 500654080 statt 86400000000 berechnet wird. Das Problem ist dabei offenbar die letzte 1000. Teilt man das ganze auf und multipliziert statt mit 1000 3 mal nacheinander mit 10 klappts...
Kann mir das bitte jemand erklären?
Danke schonmal.
Java:
public static long addition () {
return (12345 + 54321);
}
Gibt 17777 zurück und nicht wie erwartet 66666. Dabei scheint beim berechnen während des zurückgebens schief zu laufen. Führt man die Addition irgendwo anders durch funktioniert alls wie erwartet.
Java:
public static long divide () {
final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
return ( MICROS_PER_DAY / MILLIS_PER_DAY );
}
Gibt 5 zurück. Was daran liegt, dass MICROS_PER_DAY als 500654080 statt 86400000000 berechnet wird. Das Problem ist dabei offenbar die letzte 1000. Teilt man das ganze auf und multipliziert statt mit 1000 3 mal nacheinander mit 10 klappts...
Kann mir das bitte jemand erklären?
Danke schonmal.
Zuletzt bearbeitet von einem Moderator: