2014-04-24 15 views
5

Szukałem programu, który znalazłem online i widzę, że autor używał DBL_MAX w kilku przypadkach. Nie byłem pewien, co to jest, więc trochę badałem, ale niewiele wyjaśniałem, co to jest i do czego służy.Co to jest DBL_MAX w C++?

Czy ktoś może wyjaśnić, co to jest i dlaczego należy go używać?

Przykłady zastosowania kodu są:

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

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

+5

_I zbadane little_ - a może wcale. Czy myślisz, że chcesz korzystać z Google? Pierwsze kilkanaście wyników zawiera wiele pytań na tej stronie, które odpowiedzą na twoje pytanie. –

+3

Jestem oszołomiony, że każdy, kto ma przedstawiciela do głosowania, aby zamknąć to pytanie, powiedziałby, że "nie jest jasne, o co pytasz". – Casey

Odpowiedz

22

Jak to zostało powiedziane przez innych DBL_MAX określonych w nagłówku <cfloat> w C++ lub <float.h> w C jest wartością maksymalną reprezentowalna skończony zmiennoprzecinkowej (podwójne) liczby

W C++ można uzyskać sama wartość przy użyciu klasę std::numeric_limits zdefiniowane w nagłówku <limits>

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

Oto przykład użycia obu podejść

#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; 
} 

Na www.ideone.com (on-line kompilator C++) wyjście

1.79769e+308 
1.79769e+308 
0

maximum finite representable floating-point number.

Jeśli znajdziesz coś podobnego, poszukaj here.


3

jest stała określona w float.h lub <cfloat>. Ten nagłówek opisuje charakterystyki typów zmiennych dla określonego systemu i używanej implementacji kompilatora.

DBL_MAX to maksymalna reprezentowalna liczba zmiennoprzecinkowa.

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