मुझे गैर परिमित फ्लोट के लिए परीक्षण करने और उन्हें खत्म करने की आवश्यकता है। मैं फ्लोट्स का परीक्षण करने के लिए math.IsInf()
का उपयोग करने की योजना बना रहा था लेकिन इस उद्देश्य के लिए मैंने math.IsNaN()
का उपयोग करके कुछ पीपीएल देखा है। क्या इस उद्देश्य के लिए इनमें से एक बेहतर है? और यदि ऐसा है तो क्यों?गैर-सीमित फ्लोट्स IsNaN या IsInf के परीक्षण के लिए कौन सा बेहतर है?
संपादित करें: इसे रोक दिया गया है क्योंकि यह अस्पष्ट है इसलिए यहां अधिक जानकारी है जो इस प्रश्न को स्पष्ट रूप से स्पष्ट करेगी। मैं "गो प्रोग्रामिंग लैंग्वेज" से अभ्यास 3.1 कर रहा था जो इस program का संदर्भ देता है। समारोह च एक गैर-परिमित float64 मान देता है तो व्यायाम यह पूछता है
, एसवीजी फ़ाइल> अवैध तत्वों (इस शान से हालांकि कई एसवीजी दाता संभाल>) शामिल होंगे। अमान्य बहुभुज को छोड़ने के लिए प्रोग्राम को संशोधित करें।
मैं कोने समारोह
if math.IsInf(z, 0) {
return math.NaN(), math.NaN()
}
के लिए निम्न जोड़ने और
ax, ay := corner(i+1, j)
if math.IsNaN(ax) {
continue
}
bx, by := corner(i, j)
if math.IsNaN(bx) {
continue
}
cx, cy := corner(i, j+1)
if math.IsNaN(cx) {
continue
}
dx, dy := corner(i+1, j+1)
if math.IsNaN(dx) {
continue
}
fmt.Printf("<polygon points='%g,%g %g,%g %g,%g %g,%g'/>\n",
ax, ay, bx, by, cx, cy, dx, dy)
करने के लिए मुख्य में पाश के लिए दूसरे की सामग्रियों को परिवर्तित मैं जाँच करने के लिए चाहता था द्वारा इसे हल करने रंदा था मेरा काम इसलिए मैंने इस समस्या के लिए अन्य पीपीएल ऑनलाइन पोस्ट किए गए किसी भी उत्तर को देखने का फैसला किया। मैंने पाया कि कोई और नहीं, वहां समाधानों में math.IsInf()
का उपयोग किया गया था लेकिन अधिकांश ने math.IsNaN()
का उपयोग किया था। इससे मुझे आश्चर्य हुआ कि अगर मुझे कुछ याद आ रहा था और math.IsNaN()
किसी कारण से इस उद्देश्य के लिए बेहतर था। इसलिए मैंने दोनों कार्यों के लिए गो डॉक्स को देखा। मैंने विकिपीडिया और आईईईई 754 पर नाएन को देखा। मैंने सामान्य वेब खोज की थी कि क्यों हर कोई math.IsNaN()
का उपयोग कर रहा था, भले ही यह मेरे लिए कम सहज महसूस कर रहा था। तब मैंने जवाबों के लिए यहां और स्टैक ओवरफ्लो पर खोज की, इसके बाद मुझे वास्तव में कोई जवाब नहीं मिला, इसलिए मैंने एक प्रश्न पोस्ट करने का फैसला किया।
क्या आप जानते हैं कि फ़्लोटिंग-पॉइंट अनंतता और NaN क्या हैं? – user2357112
@ user2347112 - जैसा कि मैं समझता हूं कि नाएन का मतलब है कि संख्या नहीं है और 0/0 जैसी चीजों को प्रतिक्रिया देता है, एक नकारात्मक शक्ति या अनंतता की संख्या। इन्फिनिटी फ्लोट द्वारा प्रतिनिधित्व करने के लिए लंबे समय तक कोई संख्या है। कम से कम यही वह है जो मेरे शोध ने मुझे अब तक विश्वास करने के लिए प्रेरित किया है। – sjtwiv
IsInf सकारात्मक या नकारात्मक अनंतता के लिए परीक्षण करता है। NaN के लिए IsNaN परीक्षण। यदि आपको इनमें से एक या दोनों परीक्षणों की आवश्यकता है, तो फ़ंक्शन या फ़ंक्शंस का उपयोग करें जो आपको चाहिए। – user2357112