Bonjour
cout << 4/3 --> m'affiche 1
je veux afficher 1.3333. Comment faire
Bonjour
cout << 4/3 --> m'affiche 1
je veux afficher 1.3333. Comment faire
Pour avoir un résultat réel, il faut diviser des réels: cout << 4.0/3.0
non c'est pas ce le besoin
A partir deux entiers on affiche le résultat de la fraction avec virgule
Bonjour,
Voir ce sujet de la FAQ C : Que fait exactement l'opérateur diviser / ?
Bonjour,
Si tu veux un résultat flottants, tu dois partir d'opérande flottant. Tu dois donc convertir tes entiers en flottants au moyen d'un transtypage (puisque tu ne peux pas le faire par une modification d’écriture). Une méthode propre serait d’écrire :
Naturellement, cette écriture n'a d’intérêt qu'avec des variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cout << static_cast<double>(4) / static_cast<double>(3);
Fenkys
Salut,Si, justement, le besoin est bel et bien celui là : C++ est un langage fortement typé, ce qui implique que le résultat d'une opération mathématique est du même type que les opérandes qui ont été utilisé. Or, lorsque tu écris en dur 4/3, 4 et 3 sont considérés par le compilateur comme étant des entiers, ce qui fait que le résultat sera forcément du type entier.
Pour obtenir le résultat correct, il faut donc faire en sorte que l'opération (la division dans le cas présent) renvoie une valeur sous la forme d'un réel (typiquement : float, double ou long double), et, pour ce faire, il faut impérativement que l'un des opérande soit de type réel, l'idéal étant que ce soit le cas pour les deux opérandes.
Si tu veux écrire les valeurs en dur, tu dois donc choisir entre les écritures
Si tu veux utiliser des variables, l'idéal sera donc de veiller à utiliser des variables dont le type permet la représentation de réels (float, double ou long double) et si, dans le pire des cas, il s'avère impossible d'assurer ce point, il faudra avoir recours au static_cast, comme indiqué par fenkys.
- 4/3.0
- 4.0/3 et
- 4.0/3.0 (préférence à celle-ci)
Et un petit check pour ne pas faire de division par 0.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager