Problèmes avec un chiffre à virgule [résolu] - C++ - Programmation
Marsh Posté le 15-06-2005 à 15:44:57
mais le long accepte bien les chiffres après la virgule, et même en faisant avec un float ca ne marche pas...
Marsh Posté le 15-06-2005 à 17:26:12
mais le long accepte bien les chiffres après la virgule => ????
Tu ne confonds pas les formats " long " et " long double " ?
Si cela ne marche pas avec les float, c'est^peut-être un problème de conversion. Essaie de caster simplement par :
Code :
|
Marsh Posté le 15-06-2005 à 18:53:00
Je ne vois pas l'intérêt de caster en float pour finalement recaster en long, il est plus intéressant de garder le résultat en float :
float essai2 = (float) essai/(float) temps_total; |
On remplacera généralement float par double pour une meilleure précision.
Marsh Posté le 15-06-2005 à 19:47:08
il suffit que l'une des 2 operandes soit reelle, et les cast "a la C" c'est mal en c++
Code :
|
Marsh Posté le 16-06-2005 à 09:01:44
Effectivement, il peut être intéressant de conserver les formats initaux. C'était juste parce que ce format avait été évoqué par Aldarek. De plus, on ne sait pas quels sont les usages futurs de la variable. Peut-être est-il nécessaire de revenir sur des longs ?
Skelter, quand tu dis que les cast à la C c'est mal en C++, est-ce que tu veut dire qu'il est préférable d'utiliser des reinterpret_cast<float> à la place ?
Marsh Posté le 16-06-2005 à 11:33:00
plutot static_cast dans ce cas, mais on peut construire un float a partir d'un entier
je sais pas quelle est la meilleur solution ou si elles sont equivalente
Marsh Posté le 15-06-2005 à 14:58:37
Salut à tous, j'ai un problème pour une simple division et impossible de savoir pourquoi...
Voici le code :
essai étant égal à 15000 car je fais un Sleep(15000) et le temps total est égal à 120
Et c'est lorsque le résultat est inférieur à 1 , il met que essai 2 est égal à 0.
Merci de votre aide...
Message édité par Aldarek le 16-06-2005 à 09:50:52