epsilon für verschiedene float-Werte

Es ist FLT_MIN Konstante nahe null ist. Wie man am nächsten some number Wert?

Als Beispiel:

float nearest_to_1000 = 1000.0f + epsilon;
//epsilon must be the smallest value satisfying condition:
//nearest_to_1000 > 1000.0f

Ich würde es vorziehen, numerische Formel ohne Verwendung von speziellen Funktionen.

  • In IEEE754, interpretieren die float als uint32_t, erhöhen um eins und interpretieren zurück (modulo-endian).
  • Das sollte eine Antwort sein.
  • Siehe auch diese Frage.
  • Durch die Art und Weise, FLT_MIN ist nicht der Schwimmer nächste null. Es ist die kleinste normale Schwimmer. Die denormals kleiner sind. Mit dem IEEE-754, FLT_EPSILON * FLT_MIN ist die kleinste positive float.
InformationsquelleAutor brigadir | 2012-08-09
Schreibe einen Kommentar