跳到主要内容

Isinf

定义于头文件 <cmath> 中。

描述

确定给定的浮点数 num 是正无穷大还是负无穷大。
标准库为所有 cv-unqualified 浮点类型提供了重载,作为参数 num 的类型  (C++23 起)

​为所有整数类型提供了附加重载,它们被视为 double

声明

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

参数

num - 浮点或整数值

返回值

如果 num 是无穷大,则为 true,否则为 false

备注

额外的重载不需要完全按照额外重载提供。它们只需要足以确保对于其整数类型的参数 num
std::isinf(num)std::isinf(static_cast<double>(num)) 效果相同。

示例

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

int main()
{
const double max = std::numeric_limits<double>::max();
const double inf = std::numeric_limits<double>::infinity();

std::cout
<< std::boolalpha
<< "isinf(NaN) = "
<< std::isinf(NAN) << '\n'
<< "isinf(Inf) = "
<< std::isinf(INFINITY) << '\n'
<< "isinf(max) = "
<< std::isinf(max) << '\n'
<< "isinf(inf) = "
<< std::isinf(inf) << '\n'
<< "isinf(0.0) = "
<< std::isinf(0.0) << '\n'
<< "isinf(exp(800)) = "
<< std::isinf(std::exp(800)) << '\n'
<< "isinf(DBL_MIN/2.0) = "
<< std::isinf(DBL_MIN / 2.0) << '\n';
}

可能结果
isinf(NaN) = false
isinf(Inf) = true
isinf(max) = false
isinf(inf) = true
isinf(0.0) = false
isinf(exp(800)) = true
isinf(DBL_MIN/2.0) = false

Isinf

定义于头文件 <cmath> 中。

描述

确定给定的浮点数 num 是正无穷大还是负无穷大。
标准库为所有 cv-unqualified 浮点类型提供了重载,作为参数 num 的类型  (C++23 起)

​为所有整数类型提供了附加重载,它们被视为 double

声明

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

参数

num - 浮点或整数值

返回值

如果 num 是无穷大,则为 true,否则为 false

备注

额外的重载不需要完全按照额外重载提供。它们只需要足以确保对于其整数类型的参数 num
std::isinf(num)std::isinf(static_cast<double>(num)) 效果相同。

示例

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

int main()
{
const double max = std::numeric_limits<double>::max();
const double inf = std::numeric_limits<double>::infinity();

std::cout
<< std::boolalpha
<< "isinf(NaN) = "
<< std::isinf(NAN) << '\n'
<< "isinf(Inf) = "
<< std::isinf(INFINITY) << '\n'
<< "isinf(max) = "
<< std::isinf(max) << '\n'
<< "isinf(inf) = "
<< std::isinf(inf) << '\n'
<< "isinf(0.0) = "
<< std::isinf(0.0) << '\n'
<< "isinf(exp(800)) = "
<< std::isinf(std::exp(800)) << '\n'
<< "isinf(DBL_MIN/2.0) = "
<< std::isinf(DBL_MIN / 2.0) << '\n';
}

可能结果
isinf(NaN) = false
isinf(Inf) = true
isinf(max) = false
isinf(inf) = true
isinf(0.0) = false
isinf(exp(800)) = true
isinf(DBL_MIN/2.0) = false