Wenn hat ein Doppel eine ‚genaue‘ Integer-Wert, etwa so:Wenn ein Double mit einem ganzzahligen Wert in eine ganze Zahl umgewandelt wird, ist es dann garantiert "richtig"?
double x = 1.0;
double y = 123123;
double z = -4.000000;
ist sichergestellt, dass es richtig zu 1, 123123 abrunden wird, und -4, wenn sie über (int) auf einen ganzzahligen Typ umgewandelt x , (int) y, (int) z? (Und nicht auf 0, 123122 oder -5 b/c von Fließkomma-Seltsamkeit abgeschnitten). Ich frage b/c nach this page (das ist über fp in Lua, eine Sprache, die standardmäßig nur seinen numerischen Typ verdoppelt), spricht darüber, wie Integer-Operationen mit doubles sind genau nach IEEE 754, aber ich bin mir nicht sicher wenn ich beim Aufruf von C-Funktionen mit Integer-Typ-Parametern die doppelte Verdopplung manuell vornehmen muss, oder wenn man darauf achtet, dass die Double-Werte ganzzahlige Werte haben.
Sie sollten hier einige Punkte klären a) durch double do du meinst 8 Bytes oder 4 Bytes und b) mit richtig meinst du rund geht gegen Null? – JaredPar
Mögliches Duplikat: http://stackoverflow.com/questions/9154687/validity-of-checking-exact-value-of-preset-double – Ruben
Es findet kein "Runden" statt. Die Besetzung führt Abschneiden durch. –