division d un float

division d un float - C++ - Programmation

Marsh Posté le 15-04-2005 à 09:28:57    

Bonjour,  
J ai une petite question: comment on fait une division d un reel en C++?  
J ai utilisé  
float a, b, c;  
a= b/c;  
or il me donne la partie entiere de b divisé par c!  
Quelqu un sait comment récupérer la valeur réelle de a?  
Merci d avance

Reply

Marsh Posté le 15-04-2005 à 09:28:57   

Reply

Marsh Posté le 15-04-2005 à 09:36:39    

faux.


Message édité par Taz le 15-04-2005 à 09:36:47
Reply

Marsh Posté le 15-04-2005 à 09:43:07    

faux quoi?

Reply

Marsh Posté le 15-04-2005 à 09:46:45    

[quote]float a, b, c;  
a= b/c;  
or il me donne la partie entiere de b divisé par c! [/fixed]

Reply

Marsh Posté le 15-04-2005 à 09:49:53    

ben je sais vu qu il me met la partie entiere mais que dois je mettre alors????

Reply

Marsh Posté le 15-04-2005 à 10:03:14    

Ce que taz essaie de dire (je traduis ;) )
 
c'est que a=b/c; devrait donner la division d'un flottant par un autre flottant. Enfin si a b et c sont bien déclarés comme flottants.
 
Donc ton erreur doit venir d'un autre endroit de ton code.
 
Est-ce que tu es sur de ne pas tronquer b avant ?

Reply

Marsh Posté le 15-04-2005 à 10:18:59    

treza22 a écrit :

Bonjour,  
J ai une petite question: comment on fait une division d un reel en C++?  
J ai utilisé  
float a, b, c;  
a= b/c;  
or il me donne la partie entiere de b divisé par c!  
Quelqu un sait comment récupérer la valeur réelle de a?  
Merci d avance


Nan, ça, ça ne donne rien, ça fait juste un calcul: c'est le soleil qui donne.
 
Tu dois sans doute afficher ce résultat à un moment donné, et il est donc probable que ton affichage soit légèrement érroné.

Reply

Marsh Posté le 15-04-2005 à 10:24:49    

Ha ok ca y est ca marche mais c est vraiment galere: ne pas pouvoir avoir un float quand on divise 2 entiers c est pas normal!
Mais bon c est les defaults du C et puis voila!
Je vous remercie tous les deux dans tous les cas!
Bye

Reply

Marsh Posté le 15-04-2005 à 10:25:28    

excuse merci à tous les 3!

Reply

Marsh Posté le 15-04-2005 à 10:29:19    

treza22 a écrit :

Ha ok ca y est ca marche mais c est vraiment galere: ne pas pouvoir avoir un float quand on divise 2 entiers c est pas normal!
Mais bon c est les defaults du C et puis voila!
Je vous remercie tous les deux dans tous les cas!
Bye


 
c'est quand même ce qui se passe en C, C++, Java....


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 15-04-2005 à 10:29:19   

Reply

Marsh Posté le 15-04-2005 à 10:36:44    

treza22 a écrit :


ne pas pouvoir avoir un float quand on divise 2 entiers c est pas normal!


 
bah faisons une petition [:pingouino]
 
renseignes toi sur le typage dans les langages et tu verras que c'est pas si trivial ...

Reply

Marsh Posté le 15-04-2005 à 10:58:31    

treza22 a écrit :

Ha ok ca y est ca marche mais c est vraiment galere: ne pas pouvoir avoir un float quand on divise 2 entiers c est pas normal!
Mais bon c est les defaults du C et puis voila!
Je vous remercie tous les deux dans tous les cas!
Bye


 
ce n'est pas un defaut, la division d'un entier par un autre c'est une division euclidienne qui retourne naturellement un quotient et un reste

Reply

Marsh Posté le 15-04-2005 à 11:08:54    

sache que la division pour les entiers renvoie un entier. puis dans ton cas, il fait la conversion (de la division entière) en flotant, c'est tout à fait normal. La division entière n'a rien à voir (entre guillemets) avec la division pour floattant :p
Mais par abus de notation on utilise le meme signe "/". Mais si tu tiens ant queçà à avoirun signe différent je te conseille OCAML qui utilise le signe "/" pour la division d'entier et "./" pour la division floattant en sachant que "a./b" si a et b sont des entiers ben çà plante :o
 
Bon alors avant de dire c'est pas normal, vérifie ce que tu dis.

Reply

Marsh Posté le 15-04-2005 à 19:43:51    

treza22 a écrit :

Ha ok ca y est ca marche mais c est vraiment galere: ne pas pouvoir avoir un float quand on divise 2 entiers c est pas normal!
Mais bon c est les defaults du C et puis voila!
Je vous remercie tous les deux dans tous les cas!
Bye


 
C'est pas un défaut, c'est standard
Si tu écrits "float a=7/3"; le C calcule d'abord "7/3" dans le typage le plus large de ces deux constantes (à savoir int) et met le résultat dans un flottant
 
Si tu veux diviser en flottant, utilise la notation "constante float" => t'as plein de possibilités
float a=7.0/3;
float a=7/3.0;
float a=7.0/3.0;
float a=(float)7/3;
etc etc
Le C prendra le typage le plus large pour faire la division
 
PS: C'est un topic C, pas C++


Message édité par Sve@r le 15-04-2005 à 19:45:02

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed