Wenn ich aus Gründen der Klarheit eine Sprache verwende, die IEE 754-Floats implementiert, erkläre ich:
float f0 = 0.f;
float f1 = 1.f;
... und dann wieder ausdrucken, bekomme ich 0,0000 und 1,0000 - genau.
IEEE 754 ist jedoch nicht in der Lage, alle Zahlen entlang der realen Linie darzustellen. Nahe Null sind die "Lücken" klein; Je weiter Sie entfernt sind, desto größer werden die Lücken.
Meine Frage lautet also: Für einen IEEE 754-Float, welche ist die erste Ganzzahl (am nächsten bei Null), die nicht genau dargestellt werden kann? Ich bin im Moment nur wirklich mit 32-Bit-Floats beschäftigt, obwohl ich interessiert sein würde, die Antwort für 64-Bit zu hören, wenn jemand sie gibt!
Ich dachte, dies wäre so einfach wie das Berechnen von 2 Bits von Mantissa und das Hinzufügen von 1, wobei Bits von Mantissa die Anzahl der Bits sind, die der Standard verfügbar macht. Ich habe dies für 32-Bit-Floats auf meinem Computer (MSVC ++, Win64) getan, und es schien jedoch in Ordnung zu sein.