2015-11-20 5 views
5

Ich habe einige Schwierigkeiten zu verstehen, den folgenden Code:Doppelvergleich - numerische Grenzen

double a = -1000; 
double b = numeric_limits<double>::min(); 

if (a < b) 
{ 
    cout << "why?"; 
} 

Und der Ausgang ist:

warum?

Wie kann -1000 niedriger sein als numeric_limits<double>::min()?

+4

http://en.cppreference.com/w/cpp/types/numeric_limits/min Beachten Sie die Erwähnung von "niedrigste" dort im Gegensatz zu "min()" – JSF

Antwort

9

Es ist, weil numeric_limits<double>::min(); ist die niedrigste positive Zahl ausdrückbar in Doppel-Gleitkomma-Genauigkeit, nicht die negativste Zahl.