故意归还NaN

时间:2012-12-07 08:52:31

标签: c++ nan

我正在写一个光线追踪器,并且该过程的一部分正在发射可能会或可能不会撞击物体的光线(几何物体)。如果没有发生交叉(交叉是虚构的),描述对象的许多方程自然地返回NaN,但是如果没有交叉发生,并非所有对象都返回NaN。

我知道如果没有发生交叉,我可以强制返回sqrt(-1),但我想知道是否有办法以较便宜的方式返回它。

4 个答案:

答案 0 :(得分:20)

这应该有效:

#include <limits>

return std::numeric_limits<double>::quiet_NaN();

答案 1 :(得分:17)

return std::numeric_limits<double>::quiet_NaN();

答案 2 :(得分:6)

我知道这是一个老问题,但是对于C ++ 11,您有if((!isset($blog)) && ($data['blog'] !== '')) 个函数系列(nan(const char*)表示双精度数,nan表示长双精度数和{ {1}}用于花车)。该参数是特定于实现的,但传递空字符串(例如nanl)会返回一个通用的NaN值。

答案 3 :(得分:0)

NAN中的math.h宏也可以使用。