2017-10-20 8 views
2

これは私の宿題です。「roundAllUp()というメソッドを作成します。これは、倍精度の配列をとり、新しい整数の配列を返します。返される配列には、doubleの配列からすべての数値が含まれますが、切り上げられます。私は整数の配列でそれらを返すことができるか、値がdoubleの配列から切り上げられるとJavaで整数の配列に複素数の配列をキャストするにはどうすればよいですか?

public static int[] roundUp(double[] array2){ 
    for(int i = 0; i < array2.length; i++){ 
     Math.ceil(array2[i]); 
    } 
} 

:ここ

は、私がこれまで持っている方法ですか?

答えて

5

あなたは近くにいるので、int(s)の新しい配列を作成し、Math.ceilコールの結果を(適切なキャストで)割り当てる必要があります。あなたは、Java 8+を使用している場合と同様に、

public static int[] roundUp(double[] array2) { 
    int[] arr = new int[array2.length]; 
    for (int i = 0; i < array2.length; i++) { 
     arr[i] = (int) Math.ceil(array2[i]); 
    } 
    return arr; 
} 

、あなたもDoubleStreamを使用して、1行の配列に変換する前intに各要素をマップすることができます。同様に、

public static int[] roundUp2(double[] array2) { 
    return DoubleStream.of(array2).mapToInt(d -> (int) Math.ceil(d)).toArray(); 
} 
0

私は単純なキャスティングがこの時点でこのトリックを行うと信じています。(int) Math.ceil(array2[i])は、array2[i]という表記を切り上げたintです。そこから、intint配列(int[])に割り当てて戻す必要があります。

関連する問題