Java Veri Tiplerinin Çarpımı Problemi
-
Müritler mesela:
long a = 153421321 ;
double b = 1.0005 ;
a = a * b ;
şeklinde çarparken compile hatası alıyorum ancak
a *= b şeklinde çarparsam hata vermiyor bu ifadede double ile longu çarparken doubleı otomatik longa mı dönüştürüyor nr oluyor anlayamadım.Neden ilk ifadedeki problem nedir?
-
c# da denedim ikisinde de tür dönüşüm hatası verdi.. javada farklı olabilir
-
whopper bunu yazdı
Müritler mesela:
long a = 153421321 ;
double b = 1.0005 ;
a = a * b ;
şeklinde çarparken compile hatası alıyorum ancak
a *= b şeklinde çarparsam hata vermiyor bu ifadede double ile longu çarparken doubleı otomatik longa mı dönüştürüyor nr oluyor anlayamadım.Neden ilk ifadedeki problem nedir?
a*=b diyince double ı long a cast ediyor galiba
-
16. bölüm
http://docs.oracle.com/javase/specs/jls/se5.0/html/defAssign.html
-
double türü http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html
long türü http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html
double longdan daha büyük olduğu için b yi a ya atarken cast yapman gerekir.
http://stackoverflow.com/questions/8710619/java-operator
aynı konu burada da tartışılmış.
+= yaptığında otomatik olarak casting işlemi gerçekleşiyor.
-
tesekkür ettim hepinize. süleymn tartışma urlsi iyiymis net anladım.