2011-11-17 13 views

risposta

8

Uso Float.intValue():

Integer i = value.intValue(); 

Nota che questo provoca autoboxing, ma dal momento che hai intenzione di creare un Integer in ogni caso, questo ha vinto' t avere un impatto sulle prestazioni.

Si noti inoltre che è necessario prestare attenzione all'arrotondamento: intValue() e un cast di turno int verso zero. Per arrotondare al numero intero più vicino, utilizzare Math.round(), per arrotondare per difetto utilizzare Math.floor(), per arrotondare per eccesso utilizzare Math.ceil(). Se hai bisogno di un altro tipo di arrotondamento, devi implementarlo tu stesso.

0

Utilizzare il metodo value.intValue().

Float value = 30.0F; 
Integer intValue=Integer.valueOf(value.intValue()); 
0

new Float(value).intValue() o simly cast a int int v = (int) value

+0

Egli vuole è un 'Integer', non un 'int'. – uckelman

+0

Il tuo secondo esempio non funzionerà (errore in fase di compilazione). Dovresti fare il valore '(int) (float)'. – wchargin

1

Prova questo:

Float f = new Float(10.5); 
Integer i = new Integer((int)Math.ceil(f)); 

f.intValue() è la strada da percorrere ..

+0

+1 perché questo rende esplicito l'arrotondamento necessario (anche se potresti volerlo elaborare un po ') – Waldheinz

0

È solo può fare questo:

Float value = 30.0f; 
Integer intVal = value.intValue(); // auto-boxing happens here