2012-12-30 47 views
7

Mã này tôi đã viết để chuyển đổi double thành int nhận ngoại lệ.Đôi không chuyển đổi thành số int

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

Đây là mã của tôi

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

Trả lời

8

Double là một wrapper lớp trên cùng của nguyên thủy double. Nó có thể được truyền tới double, nhưng không thể truyền trực tiếp lên int.

Nếu bạn sử dụng double thay vì Double, nó sẽ biên dịch:

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

Bạn cũng có thể thêm một tông để double ở giữa, như thế này:

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

này

Double d = 10.9; 

là lỗi của bạn. Bạn đang sử dụng các lớp trình bao bọc thay vì các kiểu dữ liệu. Sử dụng

double d = 10.9; 
3

Thats vì bạn không thể trộn unboxing (chuyển đổi của bạn Double cú đúp primitive) và đúc. thử

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

Typo 'convertig'. 'n' bị thiếu. –

0

Bạn không thể cast wrapper như Double to primitive kiểu int.

Bạn có thể thử này -

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

Đối với séc hơn sau liên kết - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

+0

'Bạn không thể cast wrapper như Double để nguyên thủy kiểu như int trực tiếp.'Không phải luôn luôn' (đôi) mới Integer (5); 'sẽ làm việc. – BaSsGaz

Các vấn đề liên quan