跳到主要内容

Isnormal

定义于头文件 <cmath> 中。

描述

确定给定的浮点数num是否为normal,即既不是次正规数无穷大,也不是NaN
库为所有 cv-unqualified 浮点类型提供了重载,作为参数num的类型 (自 C++23 起)

​为所有整数类型提供了额外的重载,这些整数类型被视为double

声明

// 1)
constexpr bool isnormal( /* floating-point-type */ num );
附加重载
// 2)
template< class Integer >
constexpr bool isnormal( Integer num );

参数

num - 浮点或整数值

返回值

如果numnormal,则返回true,否则返回false

备注

不要求提供的附加重载与附加重载完全一致。它们只需足以确保对于整数类型的参数 num,
std::isnormal(num)std::isnormal(static_cast<double>(num))具有相同的效果。

示例

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

int main()
{
std::cout
<< std::boolalpha
<< "isnormal(NaN) = "
<< std::isnormal(NAN) << '\n'
<< "isnormal(Inf) = "
<< std::isnormal(INFINITY) << '\n'
<< "isnormal(0.0) = "
<< std::isnormal(0.0) << '\n'
<< "isnormal(DBL_MIN/2.0) = "
<< std::isnormal(DBL_MIN / 2.0) << '\n'
<< "isnormal(1.0) = "
<< std::isnormal(1.0) << '\n';
}

结果
isnormal(NaN) = false
isnormal(Inf) = false
isnormal(0.0) = false
isnormal(DBL_MIN/2.0) = false
isnormal(1.0) = true

Isnormal

定义于头文件 <cmath> 中。

描述

确定给定的浮点数num是否为normal,即既不是次正规数无穷大,也不是NaN
库为所有 cv-unqualified 浮点类型提供了重载,作为参数num的类型 (自 C++23 起)

​为所有整数类型提供了额外的重载,这些整数类型被视为double

声明

// 1)
constexpr bool isnormal( /* floating-point-type */ num );
附加重载
// 2)
template< class Integer >
constexpr bool isnormal( Integer num );

参数

num - 浮点或整数值

返回值

如果numnormal,则返回true,否则返回false

备注

不要求提供的附加重载与附加重载完全一致。它们只需足以确保对于整数类型的参数 num,
std::isnormal(num)std::isnormal(static_cast<double>(num))具有相同的效果。

示例

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

int main()
{
std::cout
<< std::boolalpha
<< "isnormal(NaN) = "
<< std::isnormal(NAN) << '\n'
<< "isnormal(Inf) = "
<< std::isnormal(INFINITY) << '\n'
<< "isnormal(0.0) = "
<< std::isnormal(0.0) << '\n'
<< "isnormal(DBL_MIN/2.0) = "
<< std::isnormal(DBL_MIN / 2.0) << '\n'
<< "isnormal(1.0) = "
<< std::isnormal(1.0) << '\n';
}

结果
isnormal(NaN) = false
isnormal(Inf) = false
isnormal(0.0) = false
isnormal(DBL_MIN/2.0) = false
isnormal(1.0) = true