Hallo,
ich habe einen QC verfasst, der die Summe aus eingegebenen Zahlen (double-Werte) bildet.
Bildung der Summe:
1. summe += noten[index];
2. summe = summe + noten[index];
Bei der 1. Variante erhalte ich keine Fehlermeldung, obwohl ein loss of precision zu erwarten ist.
Mit der 2. Variante erhält man die "gewünschte" Fehlermeldung.
Kann mir jemand erklären, wieso beim 1. Versuch der "double-Wert" übergangen und in einen "int-Wert" umgewandelt wird ???:L
Schonmal vielen Dank!
ich habe einen QC verfasst, der die Summe aus eingegebenen Zahlen (double-Werte) bildet.
Java:
public class MError
{
public void ausgabeSumme(double[] noten)
{
//double summe = 0; "absichtlich mal auskommentiert"
for (int index = 0, summe = 0; index < noten.length; index++)
{
summe += noten[index]; //--> keine Fehlermeldung
/** summe = summe + noten[index]; --> Fehlermeldung "possible loss of precision - found double, required int" */
}
}
}
Bildung der Summe:
1. summe += noten[index];
2. summe = summe + noten[index];
Bei der 1. Variante erhalte ich keine Fehlermeldung, obwohl ein loss of precision zu erwarten ist.
Mit der 2. Variante erhält man die "gewünschte" Fehlermeldung.
Kann mir jemand erklären, wieso beim 1. Versuch der "double-Wert" übergangen und in einen "int-Wert" umgewandelt wird ???:L
Schonmal vielen Dank!