2017-10-20 98 views
2

这是我的作业问题:“创建一个名为roundAllUp()的方法,它接受一个双精度数组并返回一个新的整数数组,这个返回的数组包含来自双精度数组的所有数字,但四舍五入。如何将双精度数组转换为Java中的整数数组?

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

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

一旦值从双打的阵列围捕,我怎么能在整数数组回报他们?

回答

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(); 
} 
0

我相信,简单的铸造将在这一点上做到这一点:(int) Math.ceil(array2[i])是向上取整int表示array2[i]。从那里你只需要将这些int s分配给int数组(int[])并将其返回。

相关问题