Kleinstmöglicher Wert der größer -DBL_MAX ist

14/06/2016 - 09:59 von Markus Donath | Report spam
In einem Projekt wird ein als nicht gesetzt zu interpretierender
double-Wert mit -DBL_MAX initialisiert.

Außerdem ist global ein Wert:

const double smallest_valid = -DBL_MAX+1E293;

definiert. Variablen werden dann immer mit:

if(x >= smallest_valid)

geprüft.

Die 1E293 ist aber IMO willkürlich und für den Fall dass sich DBL_MAX
signifikant àndert, auch falsch.

Wie könnte man allgemeingültig den kleinsten Wert, der garantiert größer
als -DBL_MAX ist, bestimmen?

Markus
 

Lesen sie die antworten

#1 Heinz Saathoff
14/06/2016 - 17:57 | Warnen spam
Markus Donath schrieb:

In einem Projekt wird ein als nicht gesetzt zu interpretierender
double-Wert mit -DBL_MAX initialisiert.

Außerdem ist global ein Wert:

const double smallest_valid = -DBL_MAX+1E293;

definiert. Variablen werden dann immer mit:

if(x >= smallest_valid)

geprüft.

Die 1E293 ist aber IMO willkürlich und für den Fall dass sich DBL_MAX
signifikant àndert, auch falsch.

Wie könnte man allgemeingültig den kleinsten Wert, der garantiert größer
als -DBL_MAX ist, bestimmen?



Eine Idee wàre, smallest als

const double smallest_valid = -DBL_MAX * 0.9;

zu definieren.
Ist zwar dann nicht wirklich die kleinste darstellbare Zahl, aber für
die meisten Anwendungen hinreichend klein.


- Heinz

Ähnliche fragen