Tipos de datos en C#: Double, Entero, Flotante, Char

⚡ Resumen inteligente

En C#, los tipos de datos definen el tipo de valores que puede contener una variable, desde números enteros y de coma flotante hasta valores booleanos y de cadena, y determinan cuánta memoria reserva cada variable durante la ejecución del programa.

  • 🔢 Tipos de enteros: La palabra clave Int32 (int) almacena números enteros como 10, 20 o 30 dentro de un rango de memoria fijo.
  • 🔣 Tipos de punto flotante: Los tipos double y float almacenan valores decimales, mientras que decimal ofrece mayor precisión para los cálculos financieros.
  • ☑️ Tipo booleano: La palabra clave Boolean almacena únicamente valores verdaderos o falsos y controla la lógica condicional.
  • 🔤 Tipos de texto: char almacena un solo carácter, y string almacena una secuencia de caracteres como texto.
  • 🧩 Valor frente a referencia: Los tipos de valor almacenan datos directamente, mientras que los tipos de referencia, como las cadenas de caracteres, almacenan una dirección de memoria.
  • 🤖 Asistencia de IA: GitHub Copilot y ML.NET aportan sugerencias de código y aprendizaje automático al manejo de tipos en C#.

Tipos de datos en C#

¿Qué son los tipos de datos en C#?

El lenguaje C# viene con un conjunto de tipos de datos básicos. Estos tipos de datos se utilizan para crear valores que se utilizan dentro de una aplicación. Exploremos los tipos de datos básicos disponibles en C#. Para cada ejemplo, modificaremos solo la función principal en nuestro archivo Program.cs.

1) Número entero

Los tipos de datos enteros se utilizan para trabajar con números. En este caso, los números son números enteros como 10, 20 o 30. En C#, el tipo de datos se indica mediante palabra clave int32. A continuación se muestra un ejemplo de cómo se puede utilizar este tipo de datos. En nuestro ejemplo, definiremos una variable Int32 llamada num. Luego asignaremos un valor entero a la variable y luego lo mostraremos en consecuencia.

Tipos de datos enteros en C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Int32 num=30;
   Console.Write(num);  
   
   Console.ReadKey();
  }
 }
}

Code Explicación:-

  1. El tipo de datos Int32 se especifica para declarar una variable entera llamada num. Luego a la variable se le asigna un valor de 30.
  2. Finalmente, la función console.write se utiliza para mostrar el número en la consola.

Si el código anterior se ingresa correctamente y el programa se ejecuta con éxito, se mostrará el siguiente resultado.

Salida:

Tipos de datos enteros en C#

En el resultado, puede ver claramente que la variable entera llamada num se mostró en la consola

2) Double

Para trabajar con decimales se utiliza un tipo de datos doble. En este caso, los números son números enteros como 10.11, 20.22 o 30.33. En C#, el tipo de datos se indica con la palabra clave “Double“. A continuación se muestra un ejemplo de este tipo de datos.

En nuestro ejemplo, definiremos una variable doble llamada num. Luego le asignaremos un Double valor a la variable y luego mostrarlo en consecuencia.

Double Tipos de datos en C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   double num=30.33;
   Console.Write(num); 
   
   Console.ReadKey();
  }
 }
}

Code Explicación:-

  1. El tipo de datos doble se especifica para declarar un tipo doble variable llamado núm. Luego a la variable se le asigna un valor de 30.33.
  2. Finalmente, la función console.write se utiliza para mostrar el número en la consola.

Si el código anterior se ingresa correctamente y el programa se ejecuta con éxito, se mostrará el siguiente resultado.

Salida:

Double Tipos de datos en C#

Desde la salida, se puede ver claramente que la variable doble llamada num se mostró en la consola.

3) booleano

Se utiliza un tipo de datos booleano para trabajar con valores booleanos de verdadero y falso. En C#, el tipo de datos se indica mediante la palabra clave booleana. A continuación se muestra un ejemplo de cómo se puede utilizar este tipo de datos.

En nuestro ejemplo, definiremos una variable booleana llamada "estado". Luego asignaremos un valor booleano a la variable y luego la mostraremos en consecuencia.

Tipos de datos booleanos en C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
  { 
   static void Main(string[] args) 
   {
    Boolean status=true;
    Console.Write(status);
    
    Console.ReadKey();
   }
  }
}

Code Explicación:-

  1. El tipo de datos booleanos se especifica para declarar una variable booleana llamada "estado". Luego, a la variable se le asigna un valor de verdadero/falso.
  2. Finalmente, la función console.write se utiliza para mostrar el valor booleano en la consola.

Si el código anterior se ingresa correctamente y el programa se ejecuta exitosamente, se mostrará el resultado.

Salida:

Tipos de datos booleanos en C#

En el resultado, puede ver claramente que la variable booleana que es igual a verdadero se mostró en la consola

4) Cuerda

Se utiliza un tipo de datos String para trabajar con valores String. En C#, el tipo de datos se indica con la palabra clave "Cadena". A continuación se muestra un ejemplo de este tipo de datos.

En nuestro ejemplo, definiremos una variable de cadena llamada "mensaje". Luego asignaremos un valor de cadena a la variable y luego la mostraremos en consecuencia.

Tipos de datos de cadena en C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class program
 {
  static void Main(string[] args)
  {
   String message="Hello";
   Console.Write(message);
   
   Console.ReadKey();
  }
 }
}

Code Explicación:-

  1. El tipo de datos String se especifica para declarar una variable de cadena llamada mensaje. Luego a la variable se le asigna un valor de "Hola".
  2. Finalmente, la función console.write se usa para mostrar el valor de la cadena en la consola.

Si el código anterior se ingresa correctamente y el programa se ejecuta exitosamente, se mostrará el resultado.

Salida:

Tipos de datos de cadena en C#

En el resultado, puede ver claramente que la variable de cadena llamada mensaje se mostró en la consola

Lista completa de tipos de datos de C#

Los cuatro ejemplos anteriores cubren los tipos más comunes, pero C# proporciona un conjunto completo de tipos de datos de valor integrados. Cada tipo reserva una cantidad fija de memoria y acepta un rango específico de valores, por lo que elegir el tipo más pequeño que se ajuste de forma segura a los datos mantiene la eficiencia del programa.

Tipo de datos Tamaño Rango / Description
byte Bytes 1 0 a 255
short Bytes 2 -32,768 a 32,767
entero (Int32) Bytes 4 -2,147,483,648 a 2,147,483,647
long Bytes 8 Números enteros muy grandes (±9.2 quintillones)
flotar Bytes 4 Decimales con una precisión aproximada de 6 a 7 dígitos.
doble Bytes 8 Decimales con una precisión aproximada de 15 a 16 dígitos.
decimal Bytes 16 Decimales de alta precisión (28-29 dígitos) para dinero
tanque Bytes 2 Un único carácter Unicode
bool Bytes 1 verdadero o falso

Junto con estos tipos de valor, el tipo cadena es el tipo de referencia más utilizado y almacena una secuencia de caracteres de cualquier longitud. Seleccionar el tipo adecuado evita errores de desbordamiento y un uso innecesario de memoria.

Tipos de valor frente a tipos de referencia en C#

Cada tipo de dato en C# se clasifica en uno de dos grupos: tipos de valor y tipos de referencia. Esta distinción determina cómo C# almacena los datos y cómo se comporta una variable al copiarla o pasarla a un método.

  • Tipos de valor: Estos almacenan los datos reales directamente, normalmente en la pila. int, double, bool, char, enumerary struct son tipos de valor. Asignar una variable a otra copia el valor, por lo que las dos variables permanecen independientes.
  • Tipos de referencia: Estos tipos almacenan una referencia (una dirección de memoria) que apunta a datos en el montón. Las cadenas, los objetos, los arreglos y las instancias de clase son tipos de referencia. Al copiar una variable de referencia, solo se copia la dirección, por lo que ambas variables comparten el mismo objeto.

Una variable de tipo valor nunca puede ser nula, ya que siempre contiene un valor, mientras que una variable de tipo referencia no inicializada tiene un valor nulo por defecto. Comprender esta diferencia ayuda a predecir cómo fluyen los cambios de datos a través de un programa.

Conversión de tipos en C#

C# necesita con frecuencia convertir un valor de un tipo de dato a otro, como por ejemplo, transformar la entrada del usuario, que siempre es texto, en un número. Este proceso se denomina conversión de tipos y se realiza principalmente de tres maneras.

  • Conversión implícita: El compilador realiza la conversión automáticamente cuando no existe riesgo de pérdida de datos, como al asignar un entero a un número de doble precisión. No se requiere ninguna sintaxis especial.
  • Conversión explícita (casting): Usted coloca el tipo de destino entre paréntesis, por ejemplo (int)myDoubleLa conversión de tipos puede provocar la pérdida de datos (convertir un double a un int elimina la parte decimal), por lo que se asume el riesgo deliberadamente.
  • Métodos auxiliares: La clase Convert (Convert.ToInt32) y el método Parse de cada tipo (int.Parse) convierten las cadenas en números, mientras que ToString convierte los valores de nuevo en texto legible.

Elegir la conversión correcta mantiene la precisión de los datos y evita errores en tiempo de ejecución cuando los tipos de datos en ambos lados de una asignación no coinciden.

Preguntas Frecuentes

Los tipos float, double y decimal almacenan números decimales, pero difieren en precisión y tamaño. float utiliza 4 bytes con aproximadamente 7 dígitos, double utiliza 8 bytes con aproximadamente 15 dígitos y decimal utiliza 16 bytes para valores financieros de alta precisión.

En realidad no hay diferencia. `int` es un alias de C# para el tipo `System.Int32` de .NET, por lo que `int` e `Int32` se compilan exactamente igual. La mayoría de los desarrolladores escriben `int` por brevedad, mientras que `Int32` hace explícito el tipo del framework subyacente.

La cadena es un tipo de referencia, ya que almacena una referencia a datos de caracteres en la memoria dinámica. Sin embargo, se comporta como un tipo de valor en un aspecto: las cadenas son inmutables, por lo que cada cambio crea un nuevo objeto de cadena en lugar de modificar el anterior.

Un tipo anulable permite que un tipo de valor como int o bool también pueda contener valores nulos, escritos con un signo de interrogación al final, por ejemplo, int?. Esto resulta útil para datos opcionales y campos de bases de datos, donde un valor faltante debe representarse de forma distinta a cero o falso.

Un `char` contiene exactamente un carácter Unicode y utiliza comillas simples, como por ejemplo 'A'. Una cadena contiene una secuencia de cero o más caracteres y utiliza comillas dobles. Un `char` es un tipo de valor, mientras que una cadena es un tipo de referencia.

`var` infiere el tipo de una variable en tiempo de compilación, y ese tipo se corrige posteriormente con soporte completo de IntelliSense. `dynamic` pospone la comprobación de tipos al tiempo de ejecución, por lo que los errores de tipo solo se manifiestan durante la ejecución. Utilice `var` para mayor seguridad y `dynamic` para escenarios flexibles con vinculación tardía.

Sí. GitHub Copilot sugiere declaraciones de tipos, conversiones y código repetitivo dentro de Visual Studio y Visual Studio CodePuede recomendar un tipo numérico adecuado o generar código de análisis, pero conviene revisar su resultado, ya que las sugerencias pueden presentar errores de precisión o problemas de desbordamiento.

Sí. ML.NET asigna los tipos de datos de C# a las características del modelo, utilizando tipos numéricos como float y double para los datos de entrenamiento y string para el texto. Las clases de datos fuertemente tipadas describen cada columna, por lo que los modelos de aprendizaje automático se integran de forma natural en las aplicaciones de C#.

Resumir este post con: