-DBL_MAX
float.h で定義されている ANSI C。
浮動小数点数 (IEEE 754) は対称なので、最大値 (DBL_MAX
) を表すことができれば または numeric_limits<double>::max()
)、先頭にマイナス記号を付けるだけです。
そして、クールな方法は次のとおりです:
double f;
(*((long long*)&f))= ~(1LL<<52);
C では
#include <float.h>
const double lowest_double = -DBL_MAX;
C++pre-11 では
#include <limits>
const double lowest_double = -std::numeric_limits<double>::max();
C++11 以降では、使用
#include <limits>
constexpr double lowest_double = std::numeric_limits<double>::lowest();