Java可能有损转换Double到Int

时间:2015-03-08 22:17:56

标签: java

所以这是我的程序,它链接到一个驱动程序。我有问题可能有损转换,我明白我在哪里,但我不知道如何解决它。我需要通过从最低到最高排序数字来重新排列Double[] array = new Double[20],如下所示。如果对我的程序进行重大更改,我该怎样才能正确执行此操作?

public void insert (double val){
  if(count < 20){
    if(val >= 1 || val <= 10){
      array[count] = val;
      count++;
    }
  }                                  
}

double min;
double max;
double tmp;

for(min = count - 1; min > 0; min--){
   max = 0;
   for(int i = 1; i <= min; i++){       // Error here because of the min value
      if(val[i] > val[max]){          // Error here because of the max value
         max = i;
      }
   }
   if(max != min){
      tmp = val[max];                  // Error here because of the max value
      val[max] = val[min];            // Error here because of the min value
      val[min] = tmp;                  // Error here because of the min value
   }
}

1 个答案:

答案 0 :(得分:1)

minmax变量不应该是双倍的。它们是数组索引,因此它们在实践中受到0和Integer.MAX_VALUE的限制。

将其更改为int