Probléme bizarre eb c++
Résolu
Probleme
Bonjour,
svp je travaille sous visual C++ 6.0 j'ai un prob avec le format double
par exemple
en prenant gamma1=0.5;gamma2=0.5; j'obtiens un résulats
et en prenant gamma1=1/2;gamma2=1/2; j'obtiens un autre résultat différent
bizzare? c quoi le probléme? c un probléme de format? 1/2 c bien 0.5 non? lol
Bonjour,
svp je travaille sous visual C++ 6.0 j'ai un prob avec le format double
par exemple
en prenant gamma1=0.5;gamma2=0.5; j'obtiens un résulats
et en prenant gamma1=1/2;gamma2=1/2; j'obtiens un autre résultat différent
bizzare? c quoi le probléme? c un probléme de format? 1/2 c bien 0.5 non? lol
2 réponses
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
Anis525
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
merci pour votre réponse, c vraiment fou ce langage
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