2014-04-24 6 views
5

Ich schaute auf ein Programm, das ich online fand, und ich sehe, dass der Autor in einigen Fällen DBL_MAX verwendet. Ich war mir nicht sicher, was es war, also recherchierte ich ein wenig, aber es gab nicht viel zu erklären, was es ist und wofür es verwendet wurde.Was ist DBL_MAX in C++?

Kann jemand erklären, was es ist und warum Sie es verwenden sollten?

Einige Beispiele für die Verwendung im Code waren:

localT.maxTemp = -DBL_MAX; 
double avg = -DBL_MAX; 
+1

http://en.cppreference.com/w/cpp/types/climits – juanchopanza

+5

_I erforscht a little_ - oder möglicherweise gar nicht. Hast du gedacht, Google zu verwenden? Das erste Dutzend Ergebnisse enthält eine Reihe von Fragen auf dieser Website, die Ihre Frage beantworten werden. –

+3

Ich bin fassungslos, dass jeder mit dem rep zu wählen, um diese Frage zu schließen würde sagen, dass es "unklar ist, was Sie fragen." – Casey

Antwort

22

Wie es von anderen DBL_MAX definiert in Header <cfloat> in C++ oder <float.h> in C ist der Wert von maximal darstellbaren endlichen Gleitkommaoperationen (double) Anzahl

In C wurde gesagt ++ können Sie die bekommen gleichen Wert-Klasse std::numeric_limits definiert in Kopf <limits>

std::numeric_limits<double>::max() 

Hier ist ein Beispiel für die Verwendung beider Ansätze

#include <iostream> 
#include <cfloat> 
#include <limits> 

int main() 
{ 
    std::cout << DBL_MAX << std::endl; 
    std::cout << std::numeric_limits<double>::max() << std::endl; 


    return 0; 
} 

Bei www.ideone.com (on-line C++ Kompilierer) die Ausgabe ist

1.79769e+308 
1.79769e+308 
0

Die maximum finite representable floating-point number.

Werfen Sie einen Blick here, wenn Sie etwas ähnliches finden.


3

Es ist eine Konstante in float.h oder <cfloat> definiert. Dieser Header beschreibt die Eigenschaften von Floating-Typen für die verwendete System- und Compilerimplementierung.

DBL_MAX ist die maximal endliche darstellbare Fließkommazahl.

http://en.cppreference.com/w/cpp/types/climits