Olası Çoğalt:
Varying behavior for possible loss of precisionJava, neden "artı eşittir" operatörünü kullanırken tam sayıdan tam sayıya kadar örtülü bir dönüşüm gerçekleştiriyor?
Kod A
public class Test {
public static void main(String[] args) {
int i = 0;
i = i + 1.5;
}
}
Kod örnek B
public class Test {
public static void main(String[] args) {
int i = 0;
i += 1.5;
}
}
Unsurprisin Örnek G, derleme A, aşağıdaki hatayı üretir. Şaşırtıcı, B derleme bir hata üretir ve Çift değeri 1.5 önce tamsayıya açık döküm takılı gibi davranır görünmektedir. Neden dünyada böyle bir şey oluyor? Bu bildiğimi düşündüğüm her şeye karşı geliyor!
Test.java:6: possible
loss of precision
found : double
required: int
i = i + 1.5;
^
1 error
@Dave doğru endişe parçası. Oh, iyi dil yok. :) –