最終更新日時: 2025年07月13日 13時07分37秒 (JST)
Koichi Murase が更新

履歴 編集

macro
<cfloat>

# LDBL_MIN

    #define LDBL_MIN implementation-defined

## 概要

`long double` の正の正規化数のうち最小のものを表すマクロ。
以下の式で表される。

$$ b^{e_{\rm min} - 1} $$

ここで、$b$ は指数表現の基数（`FLT_RADIX`）、$e_{\rm min}$ は指数の最小値（`LDBL_MIN_EXP`）である。
$b$ や $e_{\rm min}$ については `<cfloat>` のモデルも参照。

`std::numeric_limits<long double>::min()` と等しい。

## 備考

規格で 1E-37（$10^{-37}$）以下であることが規定されている。

## 例

    #include <iostream>
    #include <iomanip>
    #include <cfloat>
    #include <cmath>

    int main()
    {
      std::cout << std::setprecision(LDBL_DIG);
      std::cout << LDBL_MIN << '\n';

      // 以下の式と等価
      std::cout << std::pow((long double)FLT_RADIX, LDBL_MIN_EXP - 1) << '\n';
    }

## 出力例

    2.2250738585072e-308
    2.2250738585072e-308