problème de calcul d'une moyenne en 'double' - C - Programmation
Marsh Posté le 19-06-2010 à 15:53:25
moyenne = somme/tailleTableau 
 
tout ça c'est des int, int/int = int, donc les virgules sont tronquées. 
 
Donc: 
 
moyenne = somme/(double)(tailleTableau);
Marsh Posté le 19-06-2010 à 17:38:59
Merci donc si je comprend bien il suffit de juste mettre soit la somme ou soit la taille du tableau en 'double' pour que ca marche? 
 
Merci encore
Marsh Posté le 19-06-2010 à 19:22:11
C'est une question de typage des opérations et de conversion automatique: 
int/int -> int (éventuellement ensuite converti en double si ta variable pour stocker le  résultat est de type double) 
double/double -> double 
int/double -> double 
double/int -> double 
A+,
Marsh Posté le 21-06-2010 à 21:51:47
Salut 
 
Une opération arithmétique est faite dans le type le plus large des opérandes impliqués. 
Si tu divises 7 par 3 tu obtiendras 2. Mais si tu divises 7.0 par 3 ou 7 par 3.0 tu obtiendras 2.33333 
 
Attention, en cas d'opération intermédiaire, celle-ci ne prend en compte que les opérandes utilisés. 
Exemple: 7/3 + 2.0   => l'opération se fera d'abord avec 7/3 => résultat 2 puis elle continuera avec +2.0 => résultat final 4.0 
Bonne méthode: 7.0/3 + 2 ou bien 7 / 3.0 + 2 ou bien (double)7 / 3 + 2 
 
| jasinski13 a écrit : il suffit de juste mettre soit la somme ou soit la taille du tableau en 'double' pour que ca marche? | 
 
Pas forcément. Un cast lors de l'opération suffit 
moyenne=(double)somme / tailleTableau
Marsh Posté le 19-06-2010 à 14:26:43
Bonjour, donc voilà j'ai du réaliser un exercice l'énoncé est dans le code, mais j'ai un petit souci je voudrais que ma moyenne s'affiche exactement donc le type de ma variable est un 'double' et ça m'affiche 3.0000 mais pas avec la précision après la virgule ...
merci de 'laide