Hallo,
Mein Beispiel hat vielleicht doch damit zutun:
Komischerweise ist nämlich die Darstellung von 1,1; 1,1 * 10 und 1,1 * 1000 korrekt - der Fehler hängt also nicht (nur) von der Darstellung bestimmter Zahlen sondern von den ausgeführten arithmetischen Operation ab.
Wie dem von mir verlinkten Dokument zu entnehmen ist, kann die Ausgabe(!)
tatsächlich "korrekt" sein. Die interne Repräsentation von 1.1 bleibt
aber nunmal die gleiche.
Um solche Ungenauigkeiten zu verhindern, sieht IEEE754 eine Rundung der Werte vor. Schlampt hier Java eventuell genauso, wie bei der Typumwandlung von Gleitkommazahlen zu Ganzzahlen (Nachkommastellen werden einfach abgeschnitten)?
Letzteres ist eine Konvention. Das ist keine Schlamperei, sondern
Absicht und in jeder mir bekannten Sprache so umgesetzt. (Das hat
sicherlich auch damit zu tun, daß aus einem 5/2 bei Ganzzahlrechnung
eben auch nicht 3, sondern 2 wird. Und das ist seit den ersten
Prozessoren so. Wieso sollte es bei Casts anders sein?)
Gruß
Slyh