Contenido del Curso
Conceptos básicos de C#
Conceptos básicos de C#
Conversión de Tipos Básica
La conversión de tipos es el proceso de convertir un valor de un tipo de dato a otro. La conversión de tipos suele ser posible entre valores representados numéricamente. Por ejemplo, podemos convertir un float
a un int
y un int
a un float
. Sin embargo, convertir un string
a un int
no tiene sentido lógico y, por lo tanto, no es posible.
Hay dos tipos de conversión de tipos, a saber, Conversión de Tipo Implícita y Conversión de Tipo Explícita.
Conversión de Tipo Implícita es cuando un valor se convierte automáticamente de un tipo a otro, cuando es necesario.
main
int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
Siempre que ocurre una conversión de tipo implícita, siempre es de un tipo de dato más pequeño a uno más grande. El tamaño de un tipo de dato se determina por cuántos bits de datos puede almacenar. Por ejemplo, int
puede almacenar 32 bits mientras que long
puede almacenar 64 bits, por lo tanto, la conversión implícita de int
a long
es posible. De manera similar, float
a double
también es posible.
Los tipos ordenados por su tamaño, de menor a mayor, son los siguientes:
char
-> int
-> long
-> float
-> double
Conversión de Tipo Explícita es cuando el usuario menciona específicamente el nuevo tipo de dato de un valor al que debe ser convertido. La conversión de tipo explícita es necesaria cuando queremos convertir un valor de un tipo de dato más grande a uno más pequeño, esto se debe a que casi siempre hay pérdida de datos al convertir un valor de un tipo de dato más grande a uno más pequeño. Por ejemplo, si convertimos el float 3.14
a un entero, dará 3
como resultado, por lo tanto, hemos perdido algunos datos durante esta conversión. Por lo tanto, el compilador necesita un comando explícito del programador para realizar dicha conversión.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Para corregir el error en el código anterior, necesitamos convertir explícitamente val1
a un valor entero.
La sintaxis de una conversión es (datatype) value
, por ejemplo (int) 3.1415
. Así que en este caso escribiremos (int) val1
:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
¡Gracias por tus comentarios!