c++将无穷大转换为最大值,将-inf转换为最小值

c++ convert infinity to max and -inf to min

本文关键字:转换 -inf 最小值 最大值 c++ 无穷大      更新时间:2023-10-16

如何实现以下操作?

if( boost::math:: +is_inf (x) )
    x= max double;
else if( boost::math:: -is_inf (x) )
    x= min double;

我想保留x的符号。

这里的关键是,您可以将+inf-inf与0与<>进行比较,因此测试符号非常容易。

if(std::isinf(x))
{
    if(x>0)
        x = std::numeric_limits<double>::max();
    else
        x = -std::numeric_limits<double>::max();
}

如果您使用的是c++11 ,则无需增强