2012-04-23 25 views

Trả lời

78

Nếu bạn rõ ràng truyềndouble đến int, phần thập phân sẽ bị cắt bớt. Ví dụ:

int x = (int) 4.97542; //gives 4 only 
int x = (int) 4.23544; //gives 4 only 

Hơn nữa, bạn cũng có thể sử dụng phương pháp Math.floor() để làm tròn giá trị trong trường hợp bạn muốn double giá trị trong trở lại.

+0

Cảm ơn, đã giải quyết được sự cố của tôi – Vogatsu

+0

"Giá trị thập phân lỏng lẻo" có ý nghĩa gì? Liệu nó có cung cấp cùng một số như gọi 'Math.floor()'? –

5
double myDouble = 420.5; 
//Type cast double to int 
int i = (int)myDouble; 
System.out.println(i); 

Giá trị kép là 420,5 và ứng dụng in ra các giá trị số nguyên của 420

22

Nếu đôi là một Double có vốn đầu D (một giá trị nguyên thủy đóng hộp):

Double d = 4.97542; 
int i = (int) d.doubleValue(); 

// or directly: 
int i2 = d.intValue(); 

Nếu double đã là double nguyên thủy, thì bạn chỉ cần bỏ nó:

double d = 4.97542; 
int i = (int) d; 
+0

bạn có thể cho tôi biết sự khác nhau giữa Double và double là gì? –

+1

một đôi là giá trị điểm phẩy nguyên thủy. Một đôi là một đối tượng Java. – penguin

0

Tôi nghĩ rằng tôi đã có một đầu ra tốt hơn, đặc biệt là cho một phân loại dữ liệu kép.

Mặc dù câu hỏi này đã được đánh dấu đã được trả lời, có lẽ điều này sẽ giúp người khác;

Arrays.sort(newTag, new Comparator<String[]>() { 
     @Override 
     public int compare(final String[] entry1, final String[] entry2) { 
       final Integer time1 = (int)Integer.valueOf((int) Double.parseDouble(entry1[2])); 
       final Integer time2 = (int)Integer.valueOf((int) Double.parseDouble(entry2[2])); 
       return time1.compareTo(time2); 
     } 
    }); 
3

Một tùy chọn khác hoặc sử dụng Double hoặc double là sử dụng Double.valueOf(double d).intValue();. Đơn giản và sạch sẽ

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