के लिए जांचें क्या कोई यह जांचने के लिए विधि को जानता है कि एक डबल (या पूर्णांक) अनंत है, उदाहरण के लिए जब 1/0 ऑपरेशन किया जाता है?inf-purpose c
isfinite (n) काम नहीं कर रहा है।
के लिए जांचें क्या कोई यह जांचने के लिए विधि को जानता है कि एक डबल (या पूर्णांक) अनंत है, उदाहरण के लिए जब 1/0 ऑपरेशन किया जाता है?inf-purpose c
isfinite (n) काम नहीं कर रहा है।
आप जाँच कर सकते हैं
if(d == INFINITY) {}
या
if(d > DBL_MAX) {}
INFINITY
एक निरंतर नाव math.h
में परिभाषित अभिव्यक्ति सकारात्मक अनंत का प्रतिनिधित्व करता है;
DBL_MAX
float.h
में लगातार परिभाषित किया गया है जो कि सबसे बड़ा डबल दर्शाया जा सकता है।
#define isinf(x) \
( sizeof (x) == sizeof(float) ? __isinff((float)(x)) \
: sizeof (x) == sizeof(double) ? __isinfd((double)(x)) \
: __isinf ((long double)(x)))
मैक्रो:
भी चेक here
<math.h> किसी मैक्रो, isinf
, अपने तर्क के आकार की जांच और उसके बाद प्रकार के लिए उपयुक्त __isinf
समारोह कॉल करने के लिए परिभाषित किया गया है वास्तुकला/i386/math.h में समान है और वास्तुकला/हाथ/math.h; कार्यों के कार्यान्वयन खुद को काफी अलग हैं।
यह नकारात्मक अनन्तता के लिए सच के साथ ही सकारात्मक वापस आ जाएगी, तो आप ऐसी बात मुठभेड़ का क्या किया जाए:
2011-10-26 18: 41: 53.424 ToInfinityEtc [30,197: 903] हाँ सचमुच!
2011-10-26 18: 41: 53.426 ToInfinityEtc [30197: 903] आप betcha!
लेकिन isinf केवल जीएनयू कंपाइलर के लिए है। llvm के साथ संगत नहीं है। एक्सकोड कहता है "अज्ञात पहचानकर्ता isinf का उपयोग" हालांकि ध्वज + cmath पर नेविगेट क्लिक करें। मैंने मैन्युअल रूप से math.h आयात किया। लेकिन अभी भी cmath पर नेविगेट करता है और हां इस त्रुटि के कारण संकलित नहीं हो सकता है "अविकसित पहचानकर्ता isinf का उपयोग"। अंत में मैंने अब संकलित isinf के बजाय std :: isinf को बदल दिया। –
math.h और 'isinf()' [POSIX मानक दोनों का हिस्सा हैं] (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html), @ एन।रामोस। उनके पास जीसीसी के साथ कुछ लेना देना नहीं है। आपको कहीं और समस्या है। –
एक पूर्णांक अनंत नहीं हो सकता है। –
आप 'x * 2 == x && x! = 0' या ऐसा कुछ परीक्षण कर सकते हैं ... NaN के लिए आप' x! = X' का परीक्षण कर सकते हैं। –
क्या आप स्पष्ट कर सकते हैं कि "isfinite() 'का मतलब आपके काम से प्रतीत नहीं होता है।" –