c++ - 为什么这些 double 的返回值是 -1.#IND?

标签 c++ visual-studio-2008 visual-c++ opencv

我有:

double score = cvMatchContourTrees( CT1, CT2, CV_CONTOUR_TREES_MATCH_I1, 0.0 );
        cout<<score<<endl;

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

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

最佳答案

正如 Frederic 所说,这是 ' Not a Number 的结果' 由在 Windows 上使用 Visual Studio 构建的应用程序进行格式化。约翰 D 库克有一个 excellent reference :

Windows displays a NaN as -1.#IND ("IND" for "indeterminate") while Linux displays nan.

...

In short, if you get 1.#INF or inf, look for overflow or division by zero. If you get 1.#IND or nan, look for illegal operations.

如果您对字符串进行任何类型的格式化,请注意截断;我遇到了related issues自己处理这类错误时。

关于c++ - 为什么这些 double 的返回值是 -1.#IND?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476177/

相关文章:

visual-studio-2008 - git适合没有服务器的一个开发者吗

.net - Visual Studio 2008 CAS/安全设置

c++ - 对于下面给出的任务,使用类还是多维数组更好?

c++ - visual c++ 中有多少种字符串类型

c++ - enable_shared_from_this 中的空弱指针

c++ - 如何使用私有(private)Qt C++ API?

visual-studio-2008 - 如何使用 Visual Studio 2008 Profiler 工具分析一个库解决方案?

c++ - 取消定义已定义的头文件/C++

c++ - 保持两个交叉通信的 asio io_service 对象忙碌

c++ - 何时使用英特尔的指令集扩展技术