संभव डुप्लिकेट:
Varying behavior for possible loss of precisionजावा "प्लस बराबर" ऑपरेटर का उपयोग करते समय डबल से पूर्णांक तक अंतर्निहित प्रकार रूपांतरण क्यों करता है?
कोड नमूना एक
public class Test {
public static void main(String[] args) {
int i = 0;
i = i + 1.5;
}
}
कोड नमूना बी
public class Test {
public static void main(String[] args) {
int i = 0;
i += 1.5;
}
}
Unsurprisin gly, संकलन ए नीचे त्रुटि उत्पन्न करता है। आश्चर्यजनक रूप से, बी संकलन बी कोई त्रुटि उत्पन्न नहीं करता है और ऐसा लगता है जैसे मैंने डबल मान 1.5 से पहले पूर्णांक में एक स्पष्ट कलाकार डाला। दुनिया में ऐसा क्यों होता है? यह सब कुछ के खिलाफ चला गया मैंने सोचा था कि मुझे पता था!
Test.java:6: possible
loss of precision
found : double
required: int
i = i + 1.5;
^
1 error
@Dave सही चिंताजनक ओर से है। ओह ठीक है, कोई भाषा सही नहीं है। :) –