Possible, perte de conversion de double en int
Pourquoi suis-je le Possible lossy conversion from double to int
erreur et comment puis-je résoudre ce problème?
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;
}
}
}
}
Comme vous pouvez le voir, j'ai déjà essayé de remplacer int
avec double
près du sommet lors de la déclaration de variables, mais il ne semble pas faire le travail.
Que pensez-vous qui va se produire lorsque votre
Pour être honnête, je n'ai vraiment aucune idée :/.
double
qui peut être, dire 3.141
, est utilisé pour accéder à un index de tableau?Pour être honnête, je n'ai vraiment aucune idée :/.
OriginalL'auteur TigerLvr | 2014-10-16
Vous devez vous connecter pour publier un commentaire.
De modifier toutes vos variables utilisées comme indices de tableau de double en int (c'est à dire les variables
j
,first
,i
). Tableau des indices sont des entiers.l = set.length;
eti, j, first, temp;
int mais a gardé ledouble
type de données que est. Il est maintenant en soulignant latemp = set[first];
comme une perte d'erreur de conversion.devrait séjour double, puisque vous attribuer des valeurs à partir de votre tableau de double.
Je vois. Je me demandais aussi, si vous ne me dérange pas de répondre à cela, pourquoi, lorsque vous tentez d'imprimer le tableau non trié avec
System.out.print("Before it can be searched, this set of numbers must be sorted: "); for(i=0; i<1; i++) { System.out.print(" " + set[i]); }
provoque la sortie de la-3.0
au lieu de-3,10,5,24,45.3,10.5
Êtes-vous sûr que le code que vous avez essayé? J'ai essayé de code similaires et a obtenu
-3.0 10.0 5.0 24.0 45.3 10.5
?J'en suis sûr. Pourriez-vous me dire où vous avez mis de la partie de code exactement?
OriginalL'auteur Eran
Le tableau /indices de boucles doivent être entiers, pas des doubles.
Lors de la tentative d'accès
set[j]
par exemple, il se plaint au sujet du traitement de j comme un int.OriginalL'auteur toolkit
Modifier les types de variables comme ci-dessous. Indices de tableau doit être de type int.
temp
un double cesse de l'erreur se produise?Le type de données de "jeu" est double (64 bits). Si vous l'affectez à la température, qui est de type int(32 bits), un rétrécissement de types qui se passe. Ce n'est pas implicitement possible. Vous pourriez avoir fait explicitement comme ceci: temp = (int )réglez le[premier]; Ou, de changer le type de temp pour double, de sorte qu'il peut accepter une valeur double.
OriginalL'auteur Manish Maheshwari