在java中计算值列表中增加或减少的百分比
我正在尝试使用java构建一个数据结构和算法程序。 我想问问是否有人知道 如何计算数组中增加或减少的百分比。 我尝试了这段代码,但显然这不是正确的方法在java中计算值列表中增加或减少的百分比,java,algorithm,Java,Algorithm,我正在尝试使用java构建一个数据结构和算法程序。 我想问问是否有人知道 如何计算数组中增加或减少的百分比。 我尝试了这段代码,但显然这不是正确的方法 public class test{ static float checkMov(int arr[], int n) { float var1, var2, result = 0; var1 = arr[0]; var2 = arr[1];
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;
}
}
运行->
百分比变化是=无穷大%这里您要处理的是数字,这些数字可能会有更大的值。数据类型
float
处理3.4028347 x 10e38和1.40239846 x 10e-45之间的数字的范围有限。因此,将checkMov
的方法返回类型更改为double。还要处理双精度中的值,其范围介于1.7976931348623157 x 10e308和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
}
静态双重校验MOV(int-arr[],int-n){
双变量1,变量2,结果=0;
var1=arr[0];
var2=arr[1];
//计算前2次变化的连续变化
结果=var1+var2+((var1*var2)/100);
//计算连续变化
//对于剩余的价值
for(int i=2;i
var1+var2+((var1*var2)/100)
意味着什么?float
对于您正在处理的数字来说,可能太小了。我会使用double
或double
。试过调试吗?你的见解是什么?非常好,谢谢你的帮助
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
}