Namespaces
Variants

std::numeric_limits<T>::max_exponent10

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap と 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
 
static const int max_exponent10;
(C++11未満)
static constexpr int max_exponent10;
(C++11以降)

std::numeric_limits<T>::max_exponent10 の値は、n\(\scriptsize 10^n\)n が浮動小数点型
の表現可能な有限値であるような、最大の正の数 T です。

標準特殊化

T std:: numeric_limits < T > :: max_exponent10 の値
/* non-specialized */ ​ 0 ​
bool ​ 0 ​
char ​ 0 ​
signed char ​ 0 ​
unsigned char ​ 0 ​
wchar_t ​ 0 ​
char8_t (C++20以降) ​ 0 ​
char16_t (C++11以降) ​ 0 ​
char32_t (C++11以降) ​ 0 ​
short ​ 0 ​
unsigned short ​ 0 ​
int ​ 0 ​
unsigned int ​ 0 ​
long ​ 0 ​
unsigned long ​ 0 ​
long long (C++11以降) ​ 0 ​
unsigned long long (C++11以降) ​ 0 ​
float FLT_MAX_10_EXP
double DBL_MAX_10_EXP
long double LDBL_MAX_10_EXP

例

float 型における max_exponent , max_exponent10 , および max() の関係を示します:

#include <iostream>
#include <limits>
int main()
{
    std::cout << "max() = " << std::numeric_limits<float>::max() << '\n'
              << "max_exponent10 = " << std::numeric_limits<float>::max_exponent10 << '\n'
              << std::hexfloat << '\n'
              << "max() = " << std::numeric_limits<float>::max() << '\n'
              << "max_exponent = " << std::numeric_limits<float>::max_exponent << '\n';
}

出力:

max() = 3.40282e+38
max_exponent10 = 38
max() = 0x1.fffffep+127
max_exponent = 128

関連項目

有効な有限浮動小数点値となる基数の整数乗の最大値より1大きい値
(公開静的メンバ定数)
有効な正規化浮動小数点値となる基数の最小負のべき乗より1大きい値
(公開静的メンバ定数)
有効な正規化浮動小数点値となる10の最小負のべき乗
(公開静的メンバ定数)