c ++将无穷大转换为max,将-inf转换为min

时间:2015-11-22 09:35:16

标签: c++ c++11 boost double

如何实施以下行动?

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

我想保留x的标志。

1 个答案:

答案 0 :(得分:5)

此处的关键是,您可以将+inf-inf<>进行比较,因此测试符号非常简单。

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

如果您使用的是c ++ 11

,则无需提升