2012-04-23 9 views

Respuesta

78

Si explícitamente lanzasdouble a int, se truncará la parte decimal. Por ejemplo:

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

Por otra parte, también se puede usar Math.floor() método para redondear los valores en caso de que quiera double valor a cambio.

+0

Gracias, resolvió mi problema – Vogatsu

+0

¿Qué significa "valores decimales sueltos"? ¿Le da los mismos números que al invocar 'Math.floor()'? –

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

El valor doble es 420,5 y la aplicación imprime el valor entero de 420

22

Si el doble es un Double con el capital D (un valor primitivo en caja):

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

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

Si el doble ya es un primitivo double, simplemente lo echa:

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

¿podría decirme cuál es la diferencia entre el doble y el doble? –

+1

un doble es un valor de punto flotante primitivo. Un doble es un objeto de Java. – penguin

0

Creo que tuve una mejor salida, especialmente para una clasificación de doble tipo de datos.

Aunque esta pregunta ha sido marcada como respondida, quizás esto ayude a otra persona;

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

Otra opción, ya sea usando Double o double es utilizar Double.valueOf(double d).intValue();. Simple y limpio