Bonjour,

Dans le cadre d'une appli pour un µC je voulais savoir si cela est acceptable en C:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
char moyenne;
int result, a, b, c;
long d;
 
 
result = (a / (float) b) * 100;
 
moyenne = (char)( (d + result) / (float)c);
Le resultat de la division etant dans mon cas toujours inferieure à 100 je souhaite affecter à moyenne une variable de type char, puisqu'ensuite je stocke cette moyenne en E²prom.

Mon raisonnement est le suivant avec un exemple concret:

a=20 -> a=20.0
b=50 -> b=50.0

result = (20.0/50.0) * 100.0 = 40.0

Comme result est déclaré en int => result = 40

Puis:

d = 78000
result = 40
c = 5000

donc moyenne = (78000.0+40.0) / 5000.0 = 15.608

Si je fais un cast de type char sur le calcul je devrais avoir au final moyenne = 15 ?

Est-ce correct ce type de casting ou pas ?

Merci d'avance pour vos conseils.