• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    macro
    <cfloat>

    LDBL_MAX_EXP

    # define LDBL_MAX_EXP implementation-defined
    

    概要

    FLT_RADIX の $n - 1$ 乗が、long double の有限の値として表現可能であるような、最大の整数値 $n$ を表すマクロ。
    <cfloat> のモデルにおける $e_{\rm max}$。

    std::numeric_limits<long double>::max_exponent と等しい。

    備考

    • 本マクロは #if プリプロセッサディレクティブに使用可能な定数式である。
    • LDBL_MAX_EXP は Long DouBLe MAXimum EXPonent(maximum:最大値、exponent:指数)に由来する。

    #include <iostream>
    #include <iomanip>
    #include <cfloat>
    #include <cmath>
    
    int main()
    {
      std::cout << LDBL_MAX_EXP << '\n';
    
      std::cout << std::setprecision(LDBL_DIG);
    
      // long double の有限の値として表現可能
      std::cout << std::pow((long double)FLT_RADIX, LDBL_MAX_EXP - 1) << '\n';
    
      // long double の有限の値として表現不可能
      std::cout << std::pow((long double)FLT_RADIX, LDBL_MAX_EXP) << '\n';
    }
    

    出力例

    16384
    5.94865747678615883e+4931
    inf