所以我需要使用类org.apache.commons.math3.stat.StatUtils来计算float数组的平均值,但输入数组应该是double数组。如何将float []转换为double [] ??
谢谢!
答案 0 :(得分:1)
将数组中的每个值转换为double。 浮动比短一倍,所以你不必担心失去精确度。
创建与float数组长度相同的双精度数组。 然后,你可以将float的数组转换为double数组。
public double[] answer(float[] array){
double[] newArray = new double[array.length];
for ( int i = 0 ; i < array.length ; i++ )
newArray[i] = (double) array[i];
return newArray;
}
答案 1 :(得分:1)
您可以通过定义共同实现目标的逻辑步骤来解决您的问题:
double[]
float[]
float[]
并在double[]
传统上或 pre Java 8 之一就是这样:
final double[] doubleArray = new double[floatArray.length];
for (int i = 0; i < floatArray.length; i++) {
doubleArray[i] = floatArray[i]; // no casting needed
}
使用 Java 8 时,您可以使用Stream API来获得更简洁的解决方案:
IntStream.range(0, floatArray.length).forEach(index -> doubleArray[index] = floatArray[index]);
可能用作功能:
public static double[] convertToDouble(final float[] values) {
final double[] result = new double[values.length];
IntStream.range(0, values.length).forEach(index -> result[index] = values[index]);
return result;
}