Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1407 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Problèmes avec un chiffre à virgule [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problèmes avec un chiffre à virgule [résolu]

n°1120857
Aldarek
Posté le 15-06-2005 à 14:58:37  profilanswer
 

Salut à tous, j'ai un problème pour une simple division et impossible de savoir pourquoi...
 
Voici le code :

Code :
  1. cout<<"opération : "<<essai<<" / "<<temps_total<<endl;
  2. long essai2=essai/temps_total;
  3. cout<<"résultat : "<<(essai2*100)<<endl;


 
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... :jap:


Message édité par Aldarek le 16-06-2005 à 09:50:52
mood
Publicité
Posté le 15-06-2005 à 14:58:37  profilanswer
 

n°1120906
miminou
Posté le 15-06-2005 à 15:29:06  profilanswer
 

logique pour un nombre entier...

n°1120950
Aldarek
Posté le 15-06-2005 à 15:44:57  profilanswer
 

mais le long accepte bien les chiffres après la virgule, et même en faisant avec un float ca ne marche pas...

n°1121124
nathan_g
Posté le 15-06-2005 à 17:26:12  profilanswer
 

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 :
  1. long essai2 = (long) ((float) essai/(float) temps_total);

n°1121214
Tarabiscot​e
Posté le 15-06-2005 à 18:53:00  profilanswer
 

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.

n°1121277
skelter
Posté le 15-06-2005 à 19:47:08  profilanswer
 

il suffit que l'une des 2 operandes soit reelle, et les cast "a la C" c'est mal en c++

Code :
  1. float essai2 = float(essai)/ temps_total;

n°1121507
nathan_g
Posté le 16-06-2005 à 09:01:44  profilanswer
 

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 ?

n°1121732
skelter
Posté le 16-06-2005 à 11:33:00  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Problèmes avec un chiffre à virgule [résolu]

 

Sujets relatifs
[resolu] Positionnement VerticalProbleme super etrange de tableaux superposés [resolu]
[RESOLU] Personnaliser la barre de menu Access[PHP] Supprimer mot de 3 caractères maxi dans une chaine - RESOLU
Modifier le style dans une fonction (résolu)importation fichier DBF sous MYSQL[résolu]
Petit soucis d'alignement du texte...calendrier et base de données !! complex ... [résolu]
[c++] Inclure des librairies C++ dans des fichiers C [self-resolu][Builder C++ 6] Utilisation dynamique d'une DLL [résolu...]
Plus de sujets relatifs à : Problèmes avec un chiffre à virgule [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR