Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数组数的平均值中减去数组元素的方法_Java_Arrays_Double_Rounding - Fatal编程技术网

Java 从数组数的平均值中减去数组元素的方法

Java 从数组数的平均值中减去数组元素的方法,java,arrays,double,rounding,Java,Arrays,Double,Rounding,我有一个类型为double的数组,由用户输入的值填充,这些值是游泳比赛的圈数。它将时间存储在lapArray中,我有几种方法,但有一种方法计算lapArray中所有数字的平均值。但是,我有另一种方法getDeviationsArray,它应该找出圈速是低于平均值还是高于平均值,并用这些结果填充一个名为devArray的数组 基本上只是从平均值中减去每圈时间,但是如果圈时间高于平均值,我得到的结果是0。这可能是我的四舍五入,但我想得到一个负的结果,这将是一个较慢的时间 这是我的预期输出: 我有我

我有一个类型为
double
的数组,由用户输入的值填充,这些值是游泳比赛的圈数。它将时间存储在
lapArray
中,我有几种方法,但有一种方法计算
lapArray
中所有数字的平均值。但是,我有另一种方法
getDeviationsArray
,它应该找出圈速是低于平均值还是高于平均值,并用这些结果填充一个名为
devArray
的数组

基本上只是从平均值中减去每圈时间,但是如果圈时间高于平均值,我得到的结果是
0
。这可能是我的四舍五入,但我想得到一个负的结果,这将是一个较慢的时间

这是我的预期输出:

我有我的其他方法
getfaster
getSlowest
getAverage
和get
raceTime
已经完成的前四行。我只需要从平均值中适当地减去圈数,然后找到一种方法,如果圈数大于平均值,它应该有一个(
+
)符号,小于平均值的应该有一个(
-
)符号

代码:

公共静态双[]getDeviationsArray(双[]输入阵列){
double[]devArray=新的double[inputArray.length];
双差=0;
对于(int i=0;i
System.out.println(“这里是每圈/每段长度的分割时间和偏差:\n”);
double[]devArray1=getDeviationsArray(lapArray);
DecimalFormat df=新的DecimalFormat(“#.###”);
int index1=1;
对于(int i=0;i
感觉你把这件事复杂化了。您应该将负数差值保留为负数,而不是使用
abs
,然后使用“+”符号格式化:

double[] devArray = new double[inputArray.length];
double average = getAverageSplit(inputArray));
for (int i = 0; i < inputArray.length; ++i) {
    devArray[i] = inputArray[i] - average;
}
然后使用以下代码以符号和2位小数格式化:

String.format("%+.2f", devArray[i])

感觉你把这件事复杂化了。您应该将负数差值保留为负数,而不是使用
abs
,然后使用“+”符号格式化:

double[] devArray = new double[inputArray.length];
double average = getAverageSplit(inputArray));
for (int i = 0; i < inputArray.length; ++i) {
    devArray[i] = inputArray[i] - average;
}
然后使用以下代码以符号和2位小数格式化:

String.format("%+.2f", devArray[i])

OP可以直接使用
System.out.printf
。另一个可能的建议是使用带前导零的固定宽度格式
%+06.2f
。但是它显然比
DecimalFormat
更容易,OP可以直接使用
System.out.printf
。另一个可能的建议是使用带前导零的固定宽度格式
%+06.2f
。但它显然比十进制更容易