2008-12-12 17 views
6

मैंने कोड संकलित किया है जो गलती से एक संख्या और Double.NaN जोड़ने की कोशिश करता है। मैं सोच रहा हूं कि क्या यह एक अपवाद फेंक रहा है जो पकड़ा नहीं जा रहा है? क्या किसी को पता है कि उस स्थिति को कैसे संभाला जाता है?
धन्यवाद।जावा में, यदि आप किसी ऑपरेशन में Double.NaN का उपयोग करते हैं तो क्या होता है?

उत्तर

6

NaN में कोई संख्या जोड़ना NaN देता है। यह अपवाद का कारण होने की उम्मीद नहीं है। मैं समझता हूं कि यह आईईईई 754 के अनुरूप है।

0
public static void main(String args[]) 
{ 
    Double d = Double.NaN + 1.0; 
    System.out.println(d); 
} 

प्रिंट डबल। नैन। क्या कोई स्रोत कार्यान्वयन की व्याख्या कर सकता है?

public static final double POSITIVE_INFINITY = 1.0/0.0; 
    public static final double NEGATIVE_INFINITY = -1.0/0.0; 
    public static final double NaN = 0.0d/0.0; 
+0

परिभाषा के अनुसार, 0/0 = NaN। Http://en.wikipedia.org/wiki/NaN देखें। –

+0

एह, यह नहीं देखा कि गेमकैट का जवाब इस बात का जिक्र कर रहा था। –

1

स्टीव बी के सवाल का जवाब करने के लिए:

POSITIVE_INFINITY सबसे बड़ा मान सकारात्मक संख्या है कि आप आप असीमित संग्रहण स्थान है, तो स्टोर कर सकते हैं है। इस विलासिता के बिना हमें 1.0/0.0 जैसे निर्माण का उपयोग करना है जो एक अच्छी नौकरी करता है। समान NEGATIVE_INFINITY के लिए जाता है लेकिन फिर सबसे बड़ा नकारात्मक संख्या।

NaN को सामान्यतः 0.0/0.0 के रूप में परिभाषित किया जाता है क्योंकि 0/0 जैसी कोई संख्या नहीं है ताकि पूरी तरह से NaN के लिए अर्हता प्राप्त हो।

संबंधित मुद्दे

 संबंधित मुद्दे