19

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

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

4

4 回答 4

29

这应该有效:

#include <limits>

return std::numeric_limits<double>::quiet_NaN();
于 2012-12-07T08:56:13.253 回答
18
return std::numeric_limits<double>::quiet_NaN();
于 2012-12-07T08:55:18.930 回答
8

我知道这是一个老问题,但是对于 C++11,您拥有nan(const char*)一系列函数(nan对于双精度数、nanl长双精度nanf数和浮点数)。该参数是特定于实现的,但传递一个空字符串(例如nan(""))返回一个通用的 NaN 值。

于 2015-08-13T17:22:22.970 回答
2

from的NANmath.h也有效。

于 2020-08-17T17:59:33.220 回答