Bonjour,
Parce que la virgule n'est pas le séparateur des décimales, c'est le point qui joue ce rôle.
Par contre, comble de malchance, la virgule est bien un opérateur, qui évalue ses deux arguments, et prend pour valeur la valeur du second.
Sa priorité étant la plus basse, tu as écris ceci:
if ( (piUtilisateur==3) , (14) ) {
c'est à dire: piUtilisateur est comparé à 3 (ca donne un booléen quelconque), 14 est évalué (ca vaut 14), PUIS la virgule prend la valeur de (14).
c'est donc quasiment if(14), qui est toujours vrai, puisque 14 n'est ni false, ni 0.
Par ailleurs, comparer un nombre a virgule flottante lu n'est jamais une bonne idée, parce qu'ils sont imprécis.
Je t'invite à regarder nos diverses FAQ C++, et à faire attention aux sites autres que developpez, il peu y avoir des mauvaises habitudes dans le code.
PS: quand tu postes un code sur notre forum, utilise la balise [code] ou [codeinline], s'il te plait.
Partager