【问题标题】:How do I cast an array of doubles into an array of integers in Java?如何在 Java 中将双精度数组转换为整数数组?
【发布时间】:2018-04-01 04:21:01
【问题描述】:

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

这是我目前的方法:

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

从双精度数组中四舍五入后,如何将它们返回到整数数组中?

【问题讨论】:

    标签: java arrays int double


    【解决方案1】:

    您已经接近了,您需要创建一个新的 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();
    }
    

    【讨论】:

      【解决方案2】:

      我相信此时简单的强制转换就可以解决问题:(int) Math.ceil(array2[i])array2[i] 的四舍五入的 int 表示。从那里您只需将这些 ints 分配给 int 数组 (int[]) 并返回它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-02
        • 2011-07-07
        • 2021-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        相关资源
        最近更新 更多