我几乎 100% 肯定之前有人问过这个问题,但是我对此的搜索并没有得到令人满意的答案。
那么让我们开始吧。我所有的问题都来自这个小问题:-1.#IND000。所以基本上我的值要么是 nan 要么是无穷大,所以计算爆炸导致错误。
因为我使用浮点数,所以我一直在 C# 中使用 float.IsNan() 和 float.IsInfinity() 但是当我开始用 C++ 编码时,我还没有在 C++ 中找到等效的函数。所以我写了一个模板来检查浮点数是否为nan,如下所示:
template <typename T> bool isnan (T value)
{ return value != value; }
Run Code Online (Sandbox Code Playgroud)
但是我应该如何编写一个函数来定义浮点数是否为无限?毕竟我的 nan 检查是否正确完成?此外,我正在定时循环中进行 ckecks,因此模板应该快速运行。
谢谢你的时间!