std::numeric_limits<T>::max_exponent10
来自cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
static const int max_exponent10; |
(C++11 前) | |
static constexpr int max_exponent10; |
(C++11 起) | |
std::numeric_limits<T>::max_exponent10 的值是满足 10n
是浮点数类型 T 的可表示有限值的最大正整数 n。
标准特化
T
|
std::numeric_limits<T>::max_exponent10 的值
|
/* 未特化 */
|
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
参阅
[静态] |
底的该数次幂是合法有限浮点数的最大整数加一 (公开静态成员常量) |
[静态] |
底的该数次幂是合法正规浮点数的最小负数加一 (公开静态成员常量) |
[静态] |
10 的该数次幂是合法正规浮点数的最小负数 (公开静态成员常量) |