Les flottants ne calculent pas comme prévu dans mon programme Java/JOGL (OpenGL pour Java). Dans une méthode de dessin lorsque chaque image (à 60 images par seconde) est appelée, j'essaie de modifier la position d'un objet. Toutes les valeurs sont des valeurs flottantes.Le flottement Java échoue multiplication, ajout lors de la modification de la position de l'objet
float timeElapsed=((float)(System.currentTimeMillis()-lastdrawn))/1000;
float moveZ=(timeElapsed*momentumZ);
System.out.println(moveZ);
this.transformation.z+=moveZ;
System.out.println(this.transformation.z);
Depuis momentumZ
est initialisé avec 0.2f et this.transformation.z est initialisé avec 0.0f, l'objet doit se déplacer sur l'axe z. Mais ma sortie est:
...
0.0024
2.58058064E8
0.0052
2.58058064E8
8.0000004E-4
2.58058064E8
0.001
2.58058064E8
Ainsi, moveZ a la bonne valeur mais l'addition la salit. si j'essaie d'ajouter une valeur constante telle que 0.05f à chaque image, l'objet se déplace.
Où cette erreur peut-elle être? Y a-t-il quelque chose à propos des flotteurs que je ne connais pas?
L'addition de flotteur fonctionne sûrement; l'erreur doit être ailleurs. Peut-être que quelque chose se passe dans un autre fil? – Seth