Cast (moldear)
Hemos visto que cuando realizamos una operaciĆ³n con un conjunto de datos enteros el resultado es otro entero. Este cast se realiza a travĆ©s de un operador de conversiĆ³n de tipos (type casting operator) y es un recurso a tener en cuenta ya que hay situaciones en que nos puede resultar de gran utilidad.
Hacer uso de un cast es tan sencillo como poner (tipo de dato) delante de la expresiĆ³n o variable a convertir.
En algunas situaciones necesitamos que el resultado sea de otro tipo en estos casos utilizamos el concepto de cast (moldear) Ej:
float f=7/2; printf("%f",f); //3
Luego podemos ver si imprimimos la variable f su contenido es un 3.
Esto ocurre porque la divisiĆ³n de un int con respecto a otro valor int da como resultado un entero.
Si queremos que el resultado sea exacto podemos anteceder entre parƩntesis al tipo de dato que queramos que se moldee:
float f=(float)7/2; printf("%f",f); //3.5
Problema 1:
Cargar las 3 notas de un alumno como valores enteros. Luego mostrar el promedio teniendo en cuenta si tiene parte decimal.
Programa: programa186.c
Es importante notar que para obtener un valor float debemos dividir la suma de los tres valores indicando previamente con el operador cast la transformaciĆ³n a tipo float:
promedio=(float)(nota1+nota2+nota3)/3;
Si no antecedemos (float) al resultado de la suma de los tres valores luego el resultado serĆ” un entero sin parte decimal.
Se produce una conversiĆ³n automĆ”tica sin necesidad de indicar el operador cast cuando tenemos un valor float y se lo asignamos a una variable entera:
float f=5.3; int x=f; printf("%i",x); //5
No es necesario indicar (mƔs allƔ que no genera error):
int x=(int)f;
Y asĆ hay muchas situaciones en que podemos utilizarlo, como cuando lleguemos a C avanzado donde haremos incluso cast a punteros para lograr cosas que normalmente no podemos hacer. Espero que esta explicaciĆ³n les sea de utilidad.
No hay comentarios:
Publicar un comentario