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

  FORUM HardWare.fr
  Programmation
  C

  [Résolu] Problème de division

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Problème de division

n°1206526
kmeleon1
Ubuntu Forweeeeever
Posté le 24-09-2005 à 16:13:08  profilanswer
 

Salut à tous !
 
Voilà je commence peine à me lancer dans le langage C (avec une très bonne connaissance du PHP, ce qui est plutot avantageux ;) ) et j'ai un petit problème de variables avec une division.
 

Code :
  1. int a;
  2. float division;
  3. int racine;
  4. int nb;
  5. a = 5;
  6. racine = sqrt(a); //Il va donc transformer la racine carrée de 5 en un entier (2)
  7. nb = 9;
  8. division = racine/nb; // Divise 2 par 9
  9. printf ("%d", division); //Il m'affiche 0 !!!


 
Que je sache, 2/9 ca fait bien 0,22222222... lol donc si on pouvait m'expliquer d'où vient l'erreur ca m'aiderai beaucoup ;)
Je précise que si j'affiche la variable racine, j'obtient comme prévu 2...
 
Bonne soirée ;)


Message édité par kmeleon1 le 24-09-2005 à 17:10:25
mood
Publicité
Posté le 24-09-2005 à 16:13:08  profilanswer
 

n°1206529
retrox
Posté le 24-09-2005 à 16:21:53  profilanswer
 

Numérateur et dénominateur sont entiers, donc la division entiere est utilisée.

n°1206533
kmeleon1
Ubuntu Forweeeeever
Posté le 24-09-2005 à 16:29:01  profilanswer
 

Alors comment demander un nombre à virgule ??? J'essaie de transformer racine et nb en float, mais ca marche pas non plus :'(

n°1206535
retrox
Posté le 24-09-2005 à 16:45:12  profilanswer
 

Il faut modifier ton printf pour afficher un float : %d c'est pour les entiers, %f pour les floats.

n°1206537
kmeleon1
Ubuntu Forweeeeever
Posté le 24-09-2005 à 16:52:28  profilanswer
 

Je me suis mal exprimé, en fait mon calcul veut déterminer ceci:
 

Code :
  1. int a;
  2. float division;
  3. int racine;
  4. int nb;
  5. int verif;
  6. a = 5;
  7. racine = sqrt(a); //Il va donc transformer la racine carrée de 5 en un entier (2)
  8. nb = 9;
  9. division = racine/nb; // Divise 2 par 9
  10. verif = (int) division; // C'est le seul moyen que j'ai trouvé pour  
  11. if (verif == division){ // savoir si un nombre était entier ou pas
  12.    .....
  13. }


 
Donc je veut vérifier si la division est entière...
Je me perd dans tous ces types de variables moi !!!( c'était plus facile en php :'( )
 
 

n°1206546
kmeleon1
Ubuntu Forweeeeever
Posté le 24-09-2005 à 17:09:58  profilanswer
 

Problème résolu (mais c'est de la bidouille):
 

Code :
  1. division = ((float)racine/(float)nb);


 
Voilà bonne soirée ;)

n°1206548
retrox
Posté le 24-09-2005 à 17:13:57  profilanswer
 

Code :
  1. int a,b;
  2. float d;
  3. a=2;
  4. b=9;
  5. d = a/b;
  6. printf("%f", d);              // ----> d == 0.0f
  7. d = (float)(a)/b;
  8. printf("%f", d);              // ----> d == 0.2222222f

n°1206550
retrox
Posté le 24-09-2005 à 17:17:24  profilanswer
 

Ca n'a rien d'une bidouille. L'opérateur de division existe en deux versions, une pour les entiers, une pour les floatants.  
 
Si numérateur et dénominateur sont entiers (on parle du type de données, pas de la valeur; 2.0f est  floatant), alors c'est la division entiere qui est utilisée. 2/9 = 0*9 + 2, donc 0.  
 
Si numérateur et/ou dénominateur est floatant, c'est la division floatante qui est utilisée. 2.0f/9 = 0.222222222f


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

  [Résolu] Problème de division

 

Sujets relatifs
[SQL] Petit problème -> ...not contained in an aggregate function...probleme installation SQL Server 2000
probleme internet explorer, recherche icone image[java] ChangedCharSetException [RESOLU]
Problème à l'envoit de e-mail (via smtp)problème sur méthode SaveAs
Problème de syntaxe SQL ???[MFC/VC++] problème titre dialog
[Resolu] Plusieurs requetes MySQL > Syntaxe PHP ?[Résolu] Migration VBA --> VB
Plus de sujets relatifs à : [Résolu] Problème de division


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