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