为什么这些的返回值加倍-1.#IND?

Cha*_*hai 16 c++ opencv visual-studio-2008 visual-c++

我有 :

double score = cvMatchContourTrees( CT1, CT2, CV_CONTOUR_TREES_MATCH_I1, 0.0 );
        cout<<score<<endl;
Run Code Online (Sandbox Code Playgroud)

返回的值为-1.#IND.除此之外,正值是正常的,如1.34543.

为什么会这样?我该如何解决?

Jon*_*age 15

正如弗雷德里克所说,这是一个" 非数字 " 的结果,是由在Windows上使用visual studio构建的应用程序格式化的.John D Cook有一个很好的参考:

Windows将NaN显示为-1.#IND("IND"表示"indeterminate"),而Linux显示为nan.

...

简而言之,如果你得到1.#INF或inf,寻找溢出或除零.如果你得到1.#IND或nan,请查找非法操作.

如果您使用字符串进行任何格式化,请注意截断; 我自己处理这些错误时遇到过相关问题.


Lig*_*ica 5

std::cout << (0/0.f);
// Output: -1.#IND
Run Code Online (Sandbox Code Playgroud)

这是NaN.