Probléme bizarre eb c++
Résolu/Fermé
Anis
-
10 août 2007 à 20:10
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 10 août 2007 à 21:03
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 10 août 2007 à 21:03
2 réponses
mamiemando
Messages postés
33401
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 804
10 août 2007 à 20:27
10 août 2007 à 20:27
Non c'est normal car 1/2 est un int (donc vaut 0) et 0.5 est un flottant (cond vaut 0.5). Si tu veux utiliser l'écriture fractionnaire il faut que le numérateur soit un flottant (ou multiplié à gauche par 1.0)
Exemple
Donne à l'exécution :
Bonne chance
Exemple
#include <iostream> int main(){ double x = 0.5, y = 1/2, z = 1.0/2; std::cout << " x = " << x << " y = " << y << " z = " << z << std::endl; return 0; }
Donne à l'exécution :
x = 0.5 y = 0 z = 0.5
Bonne chance
mamiemando
Messages postés
33401
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 804
10 août 2007 à 21:03
10 août 2007 à 21:03
Non ! 1 / 2 c'est la division dans l'ensemble des entiers, donc c'est normal que ça retourne un entier. 1.0 / 2 c'est la division d'un réel par un entier (que l'on peut assimiler à un flottant), donc ça retourne un réel. C'est juste que pour toi implicitement 1 et 2 sont des réels alors que ce sont deux entiers, donc C++ utilise la division dans l'ensemble des entiers.
Bonne chance
Bonne chance
10 août 2007 à 20:38