2011-11-17 4 views

答えて

8

使用Float.intValue()をintにキャスト:

これはオートボクシングを起こしていますが、とにかく Integerを作成することを計画していることから、このウォン」という
Integer i = value.intValue(); 

注意パフォーマンスへの影響はありません。

丸めには注意が必要です。intValue()intはゼロに向かってキャストラウンドします。最も近い整数に丸めるには、Math.ceil()を切り上げるために、Math.floor()の切り捨てにはMath.round()を使用します。他の種類の丸めが必要な場合は、それを自分で実装する必要があります。

0

value.intValue()メソッドを使用してください。

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

new Float(value).intValue()またはsimlyそれがint v = (int) value

+0

彼が望む 'Integer'だ、ではないが'int'です。 – uckelman

+0

2番目の例は動作しません(コンパイル時エラー)。 '(int)(float)value'を実行する必要があります。 – wchargin

1

これを試してみてください:

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

f.intValue()が移動するための方法..です

+0

+1これは必要な丸めを明示的にするためです(これについて少し詳しく説明します) – Waldheinz

0

あなたはこれを行うことができます。

Float value = 30.0f; 
Integer intVal = value.intValue(); // auto-boxing happens here 
関連する問題