# calculate the percentage increase or decrease in a list of values in java

i’m trying to build an data structures and algorithms program using java. and i wanna ask if anyone know How do i calculate the percentage increase or decrease in a array. i try this code–but apparently its not the correct way

public class test{
static float checkMov(int arr[], int n) {
float var1, var2, result = 0;

var1 = arr[0];
var2 = arr[1];

// Calculate successive change of 1st 2 change
result = var1 + var2 + ((var1 * var2) / 100);

// Calculate successive change
// for rest of the value
for (int i = 2; i < n; i++) {
result = result + arr[i] + ((result * arr[i]) / 100);
}

return result;
}
}

import static test.testt.checkMov;

public class tester {

public static void main(String[] args)

int[] arr = {1931534,1933628,1935714,1925709,1923754,1923578,1923049,1928556,1928289,1924857};

int N = arr.length;

// Calling function
float result = checkMov(arr, N);

System.out.println("Percentage change is = " + result + " %");

}
}

Run-> Percentage change is = Infinity %

Here you’re dealing with the numbers, which could go in the larger values. Datatype float has limited range to handle the numbers between 3.40282347 x 10e38 and 1.40239846 x 10e-45. So change the method return type of checkMov to double. Also handle the values in double, which ranges between 1.7976931348623157 x 10e308 and 4.9406564584124654 x 10e-324.

static double checkMov(int arr[], int n) {
double var1, var2, result = 0;

var1 = arr[0];
var2 = arr[1];

// Calculate successive change of 1st 2 change
result = var1 + var2 + ((var1 * var2) / 100);

// Calculate successive change
// for rest of the value
for (int i = 2; i < n; i++) {
result = result + arr[i] + ((result * arr[i]) / 100);
}

return result; // This returns 7.0955315970304415E44
}