如何将双精度数组转换为Java中的整数数组?
问题描述:
这是我的作业问题:“创建一个名为roundAllUp()
的方法,它接受一个双精度数组并返回一个新的整数数组,这个返回的数组包含来自双精度数组的所有数字,但四舍五入。如何将双精度数组转换为Java中的整数数组?
这里是我到目前为止的方法:
public static int[] roundUp(double[] array2){
for(int i = 0; i < array2.length; i++){
Math.ceil(array2[i]);
}
}
一旦值从双打的阵列围捕,我怎么能在整数数组回报他们?
答
您已经接近了,您需要创建一个新的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();
}
答
我相信,简单的铸造将在这一点上做到这一点:(int) Math.ceil(array2[i])
是向上取整int
表示array2[i]
。从那里你只需要将这些int
s分配给int
数组(int[]
)并将其返回。