मैंने इस पोस्ट को नकारात्मक और सकारात्मक शून्य पढ़ा है ।
मेरी समझ निम्नलिखित कोड देना चाहिए करने के लिए true
और true
एक आउटपुट के रूप में।
हालांकि, यह दे रहा है false
और true
एक आउटपुट के रूप में।
मैं नकारात्मक शून्य की तुलना सकारात्मक शून्य से कर रहा हूं।
public class Test {
public static void main(String[] args) {
float f = 0;
float f2 = -f;
Float F = new Float(f);
Float F1 = new Float(f2);
System.out.println(F1.equals(F));
int i = 0;
int i2 = -i;
Integer I = new Integer(i);
Integer I1 = new Integer(i2);
System.out.println(I1.equals(I));
}
}
हम 0 के लिए अलग व्यवहार क्यों करते हैं Integer
और Float
?
i
और i2
बिल्कुल समान हैं। फिर जब आप नई Integer
एस बनाते हैं तो वे दोनों एक ही मूल्य को लपेटते हैं। I1.equals(I)
सच होगा।
int i = Integer.MIN_VALUE, i2 = -i;
...
new
यहां रैपर प्रकारों का उपयोग करने का कोई कारण नहीं है। बस का उपयोग करें, जैसेInteger i = 0, i2 = -i; System.out.println(i.equals(i2)); Float f1 = 0f, f2 = -f1; System.out.println(f1.equals(f2));