Possible lossy conversion from double to int
Why am I getting an error Possible lossy conversion from double to int
and how can I fix it?
public class BinSearch {
public static void main(String [] args)
{
double set[] = {-3,10,5,24,45.3,10.5};
double l = set.length;
double i, j, first, temp;
System.out.print("Before it can be searched, this set of numbers must be sorted: ");
for (i = l-1; i>0; i--)
{
first=0;
for(j=1; j<=i; j++)
{
if(set[j] < set[first]) // location of error according to compiler
{
first = j;
}
temp = set[first];
set[first] = set[i];
set[i] = temp;
}
}
}
}
As you can see, I've already tried replacing int
with double
at the top when declaring variables, but it doesn't seem to do the job.
Change all its variables used as array indexes from double to int (i.e., variables j
, first
, i
). Array indices are integer.
Array / loop indices should be ints, not doubled.
When trying to access set[j]
, for example, it complains about handling j as an int.
Change the variable types as shown below. Array indices must be of type int .
public class BinSearch {
public static void main(String [] args)
{
double set[] = {-3,10,5,24,45.3,10.5};
int l = set.length;
double temp;
int i, j, first;
System.out.print("Before it can be searched, this set of numbers must be sorted: ");
for ( i = l-1; i>0; i--)
{
first=0;
for(j=1; j<=i; j++)
{
if(set[j] < set[first])//location of error according to compiler
{
first = j;
}
temp = set[first];
set[first] = set[i];
set[i] = temp;
}
}
}
}