小编Joh*_*ike的帖子

如何正确检查值是否为无穷大或 nan ic c++(msvc2010)

我几乎 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,因此模板应该快速运行。

谢谢你的时间!

c++ floating-point templates

-1
推荐指数
2
解决办法
1085
查看次数

标签 统计

c++ ×1

floating-point ×1

templates ×1