【发布时间】:2015-02-23 21:22:42
【问题描述】:
我发现了这个:http://en.cppreference.com/w/cpp/numeric/math/isinf,但它似乎检查正无穷或负无穷。我只想检查一个值是否完全等于负无穷大,或者换句话说是 log(0)
感谢您的回答!根据下面的回复,这里有一些代码可以说明什么是有效的。
#include <iostream>
#include <cmath>
#include <math.h>
using namespace std;
int main()
{
double c = std::log(0.0);
auto result = c == - INFINITY;
cout << result << endl;
return 0;
}
【问题讨论】:
-
isinf和< 0怎么样? -
是的,@Quirliom 说的
-
你可以检查无穷大的值吗? 大吃一惊
-
@marsh infinity 在 IEEE754 浮点意义上的超出范围。
-
@marsh 因为它的行为就像你期望无穷大的行为一样。例如,a) 如果
a是无穷大,那么a/2仍然是无穷大,而如果a是MAX_VALUE(它是有限的)并且b)a/b是NaN,则NaN仍然是无穷大两者都是无穷大,而如果两者都是MAX_VALUE,则为1。
标签: c++ c++11 numerical numerical-computing