如何在Java中将一个双精度数组转换为整数数组?

时间:2017-10-20 02:34:17

标签: java arrays int double

这是我的作业问题:“创建一个名为roundAllUp()的方法,它接收一个双精度数组并返回一个新的整数数组。这个返回的数组包含双精度数组中的所有数字,但是舍入“起来。

这是我到目前为止的方法:

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

一旦值从双精度数组中向上舍入,我如何以整数数组返回它们?

2 个答案:

答案 0 :(得分:5)

您已经关闭了,您需要创建一个新的int(s)数组并分配Math.ceil个调用的结果(使用适当的强制转换)。像,

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;
}

如果您使用的是Java 8+,您还可以使用DoubleStream并将每个元素映射到int,然后再转换为一行中的数组。像,

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

答案 1 :(得分:0)

我相信简单的投射会在这一点上起作用:(int) Math.ceil(array2[i])int的向上舍入array2[i]表示。在那里,您只需将int分配给int数组(int[])并将其返回。