मैं openjdk-1.7.0_25
स्रोत कोड देख रहा था और मैं इस विधि को देखा है:जावा isNan यह कैसे काम करता है?
/**
* Returns {@code true} if the specified number is a
* Not-a-Number (NaN) value, {@code false} otherwise.
*
* @param v the value to be tested.
* @return {@code true} if the argument is NaN;
* {@code false} otherwise.
*/
static public boolean isNaN(float v) {
return (v != v);
}
मैं नहीं समझ सकता है कि यह कैसे काम करता है, जब इस विधि true
लौट सकते हैं?
तो ऑपरेशन का एक छोटा सा सेट 'NaN' वापस कर सकता है और केवल उन मानों के साथ यह' सत्य 'वापस कर सकता है ... ठीक है धन्यवाद! – rascio
@rascio। हाँ वह विधि केवल 'NaN' तर्क के लिए' सत्य 'वापस कर देगी। और कुछ अन्य ऑपरेशन भी हो सकता है, जो 'NaN' देता है। 'डबल। POSITIVE_INFINITY/Double.POSITIVE_INFINITY' की तरह, नकारात्मक अनंतता के लिए। –
@rascio इसके अलावा, यह न भूलें कि यदि आप उस 'NaN' मान के साथ गणना करते रहते हैं, तो हर परिणाम हमेशा' NaN' होता है। तो सैद्धांतिक रूप से हां, केवल संचालन का एक छोटा सा सेट वास्तव में 'NaN' उत्पन्न करता है, लेकिन यदि आप इसके साथ गणना करते रहते हैं, तो हर आगे का ऑपरेशन' NaN' भी वापस आ जाएगा! –