Std: numeric_limitsdouble :: epsilon Definition

8

numeric_limits::espilon gibt die Differenz zwischen 1 und dem nächsten Doppel zurück. Also, sollte ich verstehen, dass der Abstand zwischen zwei benachbarten Doppel nicht immer derselbe ist, zum Beispiel zwischen 2 und dem nächsten Doppel?

Und wenn ja, könnte ich eine Erklärung haben?

    
Guillaume07 06.06.2011, 06:03
quelle

2 Antworten

16

Die "Dichte" von Fließkommazahlen nimmt viel ab, je weiter Sie sich von Null entfernen.

Dies liegt daran, dass der IEEE-Fließkomma-Wert im Wesentlichen als wissenschaftliche Notation gespeichert ist, so dass der Bereich gegenüber der gleichförmigen Genauigkeit bevorzugt wird. (Wenn es sich um eine einheitliche Genauigkeit handelt, wäre dies ein Fixpunkt, kein Gleitpunkt.)

Mit anderen Worten, Zahlen werden in der Form Significant * 2 exponent gespeichert. Wenn also der Exponent groß wird, bewirkt eine kleine Änderung des Signifikanden eine große Änderung in die Nummer (und umgekehrt).

Also nein, Sie können nicht annehmen, dass der Unterschied zwischen 2 und dem nächsten Doppel dasselbe wie Epsilon ist; ist es nicht.

    
Mehrdad 06.06.2011, 06:07
quelle
2

Doppel sind Gleitkommazahlen. Sie bestehen aus einem Signum, einem Signifikanten und einem Exponenten.

Je höher der Exponent, desto größer ist der Unterschied zwischen einem Doppel und seinem Nachfolger.

Je niedriger der Exponent, desto kleiner ist der Unterschied zwischen einem Doppel und seinem Nachfolger.

    
Hyperboreus 06.06.2011 06:08
quelle

Tags und Links