Historique des modifications - Message

Message #2782

Sujet: Bizzareries avec des f64 (donc les doubles)


Type Date Auteur Contenu
Création du message 31-07-2007 10:34:01 Nebu
Bonjour,

Bon je pense pas que mon problème soit spécifique a irrlicht, mais etant donnée que mon problème apparait dans un code sous irrlicht, je poste ici.
Donc mon problème se situe sur un calcul qui me retourne une valeur avec une précision etrange.

Voila le code incriminé
J = J+((dayspeed/86400.0)/1000.0)*dTime;

J est un f64, ainsi que dayspeed
dTime est un u32

Mon problème est que J ne se met pas a jour, j'ai eu beau essayer, ressayer rien a faire
J est de l'ordre du million et la présicion est d'environs 10 chiffres apres la virgule (meme si 6 seraient suffisant)

La plus grosse bizzarerie se situe dans le fait que si je decompose mon calcul ainsi
f64 temp = ((dayspeed/86400.0)/1000.0)*dTime;
f64 temp2 = temp+J;
printf("", temp+J);
J = temp2;
Et bien J prend la bonne valeur.
Sans le printf...rien n'y fait, avec le printf...ca marche
Toute autre tentative a lamentablement échouée, et si j'insère la moindre ligne de code entre l'affectation temp2 et le printf, ca ne fonctionne plus...

Autre chose, si je desactive l'option /arch:SSE2 du compilo, ce code ne fonctionne plus.

Je pense que ce problème depasse largement mes compétences, et j'essaie de retourner google mais je ne sais meme pas par ou chercher car ce problème est d'un flou absolu pour moi...
Quelqu'un aurais une idée ?

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
123 invités en ligne
membre en ligne: -
RSS Feed