मैंने इस पोस्ट को नकारात्मक और सकारात्मक शून्य पढ़ा है ।
मेरी समझ निम्नलिखित कोड देना चाहिए करने के लिए 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));