Math.round()のように小数点以下を四捨五入するメソッド作りたいです。 できれば、数値計算(数学的に?)で実数を処理したいです。 自分で作れたのはintで型キャストするやり方で、あまり納得していません。 うまく数学的な処理で小数点以下を判別して、四捨五入の結果を返すことはできませんか? ちなみに自作したものはこんなかんじです↓。 public class MyRoundTest { // 四捨五入 static int myRound(double d){ int sign = (d < 0) ? -1 : 1; double mid = (int)(d)+sign*0.5; return (d*sign >= mid*sign)? (int)d+sign: (int)d; } public static void main(String[] args){ double[] d = {2.4, 2.5, -2.4, -2.5, 4.5}; for(double element : d){ System.out.println(element+"\t→\t"+myRound(element)); } } } /* 出力結果は 2.4→2 2.5→3 -2.4→-2 -2.5→-3 4.5→5 です。 */
↧