Utilisation du float pour une division en langage c
Je voudrais diviser deux int pour avoir un float. Mais dans mon programme, ça ne fonctionne pas il m'affiche 1,000000. Est-ce en raison de mon void modification(int * a ) ?
Mon programme :
Mon programme :
1 #include <stdio.h>
2 void modification(int * a )
3
4 {
5 a=15;
6 }
7 int main()
8 {
9 int a = 15;
10 int b = 23;
11 float f;
12 printf("%d\n",b);
13 modification(&b);
14 f = b / a;
15 printf("%f \n",f) ;
16
17 return 0;
18
19 }
20
3 réponses
-
ContributeurSalut Ruvox,
Essaye ceci :
f = (float) b / a;
Si tu ne fais pas un cast de l'une des valeurs sur le typefloat
, tu fais une division de deux types entiers et le langage C comprend alors que tu veux faire une division entière et te donne naturellement un résultat qui tronque les décimales.
Il suffit que l'une des opérandes de la division soit d'un typefloat
oudouble
, selon le type du résultat souhaité pour que le C fasse une division avec décimales.
Dal