我正在写一个光线追踪器,并且该过程的一部分正在发射可能会或可能不会撞击物体的光线(几何物体)。如果没有发生交叉(交叉是虚构的),描述对象的许多方程自然地返回NaN,但是如果没有交叉发生,并非所有对象都返回NaN。
我知道如果没有发生交叉,我可以强制返回sqrt(-1),但我想知道是否有办法以较便宜的方式返回它。
答案 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
宏也可以使用。