2012-12-30 16 views
7

Bu kod double'u int ürününe dönüştürmek için yazdım. Double int için dönüştürülüyor

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Cannot cast from Double to int 

Bu

Bu

Double d = 10.9; 

Hata benim kod

Double d = 10.9;  
int i = (int)(d); 

cevap

8

Double ilkel double üstüne bir sargı sınıftır deneyin. double'a dökülebilir, ancak doğrudan int'a dönüştürülemez.

yerine Double ait double kullanırsanız, derlenir:

double d = 10.9;  
int i = (int)(d); 

Ayrıca bu gibi ortada double bir döküm ekleyebilirsiniz:

int i = (int)((double)d); 
2

olduğunu. Veri türleri yerine sarmalayıcı sınıfları kullanıyorsunuz. Eğer kutudan çıkarma karıştırmak olamaz çünkü ve döküm (senin Double bir primitive çift dönüştürmek)

double d = 10.9; 
3

Thats kullanın.

int i = (int)(d.doubleValue()); 
+0

Tipo 'convertig'. 'n' eksik. –

0

Sen sarmalayıcı döküm olamaz Doğrudan int gibi ilkel türden Double gibi.

Bu deneyebilirsiniz - Daha fazla kontrol için

int i = (int)((double)d);

bağlantıyı takip - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

+0

'Doğrudan sarma gibi ilkel türdeki sarmalayıcıyı int gibi atayamazsınız. 'Her zaman (çift) yeni Tamsayı (5);' çalışırdı. – BaSsGaz