2012-12-07 24 views
13

Tôi đang viết một bộ theo dõi tia và một phần của quá trình này là bắn một tia có thể hoặc không thể chạm vào vật thể (đối tượng hình học). Một số phương trình mô tả đối tượng trả về NaN một cách tự nhiên nếu không có giao lộ xảy ra (giao lộ là tưởng tượng) nhưng không phải tất cả các đối tượng đều trả về NaN nếu không có giao lộ nào xảy ra.Cố ý trả về NaN

Tôi biết rằng tôi có thể buộc trả lại sqrt (-1) nếu không có giao lộ xảy ra, nhưng tôi đã tự hỏi liệu có cách nào để trả lại điều này theo cách ít tốn kém hơn không.

Trả lời

13

này nên làm việc:

#include <limits> 

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

Cảm ơn rằng hoạt động – asimes

+0

Tôi đoán nó đã cho tôi một phút để tìm kiếm các tiêu đề thích hợp. :) Tôi sẽ để lại điều này bây giờ, tôi nghĩ rằng nó tốt hơn một chút so với câu trả lời được chấp nhận. – unwind

12
return std::numeric_limits<double>::quiet_NaN(); 
+0

Cảm ơn rằng hoạt động – asimes

4

Tôi biết đó là một câu hỏi cũ, nhưng với C++ 11 bạn có gia đình nan(const char*) chức năng (nan cho đôi, nanl cho đôi dài và nanf cho nổi). Đối số là triển khai cụ thể, nhưng chuyển một chuỗi rỗng (ví dụ: nan("")) trả về giá trị NaN chung.

+1

Đây là tham chiếu đến hàm 'nan': http://www.cplusplus.com/reference/cmath/nan-function/ – Carlton

Các vấn đề liên quan