Uso de float para una división en lenguaje 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 modificacion(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 modificacion(&b); 14 f = (float)b / a; 15 printf("%f \n",f) ; 16 17 return 0; 18 19 } 20
3 respuestas
-
ColaboradorHola Ruvox,
Prueba esto:
f = (float) b / a;
Si no haces un cast de uno de los valores al tipofloat
, haces una división de dos tipos enteros y el lenguaje C entiende que quieres hacer una división entera y te da naturalmente un resultado que trunca los decimales.
Basta con que uno de los operandos de la división sea de un tipofloat
odouble
, según el tipo de resultado deseado, para que el C realice una división con decimales.
Dal