回答:
を使用Math.round()
すると、floatが最も近い整数に丸められます。
(int)foo
が簡単です。
実際には、達成したい結果に応じて、floatをintにダウンキャストする方法はいくつかあります(int i
、floatの場合f
)。
丸め(指定された浮動小数点に最も近い整数)
i = Math.round(f);
f = 2.0 -> i = 2 ; f = 2.22 -> i = 2 ; f = 2.68 -> i = 3
f = -2.0 -> i = -2 ; f = -2.22 -> i = -2 ; f = -2.68 -> i = -3
注:これは契約により、 (int) Math.floor(f + 0.5f)
切り捨てる(つまり、小数点の後にすべてをドロップする)
i = (int) f;
f = 2.0 -> i = 2 ; f = 2.22 -> i = 2 ; f = 2.68 -> i = 2
f = -2.0 -> i = -2 ; f = -2.22 -> i = -2 ; f = -2.68 -> i = -2
ceil / floor(小数部分がある場合は常に、指定された値よりも大きい/小さい整数)
i = (int) Math.ceil(f);
f = 2.0 -> i = 2 ; f = 2.22 -> i = 3 ; f = 2.68 -> i = 3
f = -2.0 -> i = -2 ; f = -2.22 -> i = -2 ; f = -2.68 -> i = -2
i = (int) Math.floor(f);
f = 2.0 -> i = 2 ; f = 2.22 -> i = 2 ; f = 2.68 -> i = 2
f = -2.0 -> i = -2 ; f = -2.22 -> i = -3 ; f = -2.68 -> i = -3
正の値を丸めるには(int)(f + 0.5)
、を使用することもできます。これはMath.Round
、それらの場合とまったく同じように機能します(ドキュメントに従って)。
を使用Math.rint(f)
して、最も近い偶数に丸めることもできます。厳密に.5に等しい小数部を持つ多くの浮動小数点数(IEEEの丸めの問題の可能性に注意してください)を処理し、セットの平均を維持したい場合は、間違いなく役立ちます。ただし、偶数が奇数よりも一般的である別のバイアスを導入します。
見る
http://mindprod.com/jgloss/round.html
http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html
詳細と例については、
Math.round(value)
値を最も近い整数に丸めます。
使用する
1) b=(int)(Math.round(a));
2) a=Math.round(a);
b=(int)a;
Math.roundは整数値も返すので、型キャストする必要はありません。
int b = Math.round(float a);
Math.round(value)
型キャスト後に整数にキャストしてから使用してください。
float a = 8.61f;
int b = (int)Math.round(a);
私に関しては、より簡単です: (int)(a +.5) // aはFloatです。丸められた値を返します。
Java Math.round()タイプに依存しない