C/C++ の double の最小値

-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();