//Decalage des coord de p dans la zone dessin
p.setLocation(p.getX() - 280,p.getY() - 50);
int xq1 = (int)250+abscisse;
int yq1 = 0;
int xq2 = (int)250-abscisse;
int yq2 = 0;
int xp = (int)p.getX();
int yp = (int)p.getY();
g.drawLine(250,0,250,500);
g.drawLine(0,250,500,250);
g.drawOval(xq1,yq1,1,1); //affichage de q1
g.drawOval(xq2,yq2,1,1); //affichage de q2
g.drawOval(xp,yp,1,1); //affichage du point cliqué
}
}
Le compilateur m'indique une possible loss of precision alors que j'ai bien spécifié que je voulais "caster" mes floats.Je croyais que cette manipulation enlevait cette erreur mais apparement pas...
J'espere que l'un d'entre vous pourra m'aider
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 29 oct. 2006 à 00:33
Salut:
int xq1 = (int)(250+abscisse);
int xq2 = (int)(250-abscisse);
Twinuts
Messages postés5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023111 29 oct. 2006 à 00:43
Salut,
ridicule...... tu castes 250 en float(le casting se fait toujours vers la precision la plus grande) pour ensuite caster le resultat en int c'est assez bof bof quand meme.......
sachant que 250 n'a pas de partie decimale l'arrondi du resultat revient à l'arrondi d'abscisse, il est donc inutile de faire une addition et/ou une sourstaction en flottant alors qu'en integer(moins gourmant en cycle cpu) on aboutit au meme résultat.
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 29 oct. 2006 à 00:50
Salut:
Non, cher Mr.
(int)(250-x) est différente de 250-(int)x.
Contre exemple:
x = 2,5f
(int)(250-x) donne 247
250-(int)x donne 248
Vous n’avez pas trouvé la réponse que vous recherchez ?
Twinuts
Messages postés5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023111 29 oct. 2006 à 01:15
Salut,
ici je ne parle pas du résultat sur la soustraction mais du nombre des perfs avec un cast de 250 en float pour le recaster en int :
x = 2,5f
(int)(250-x)//ici le cast de 250 en float est implicite pour ensuite recaster le tout en int.....
maintenant si le but est d'avoir la précision exacte tufais tout les calcules en float pour le caster en int au final!
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 29 oct. 2006 à 01:24
mleloc
Messages postés10Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention19 mars 2007 29 oct. 2006 à 11:53
Merci a vous deux pour vos réponses engagées La solution de Twinuts fonctionne très bien. Comme un boulet j'avais mal placé le (int), en fait je pensais que ca agissait sur toute l'expression enfin bref. Merci a vous!