Tipos de datos flotantes en C#

Estrada Web Group
Estrada Web Group
Tipos de datos flotantes en C#

Resumen: en este tutorial, aprenderás a usar los tipos de datos flotantes de C# para representar números de coma flotante.

Introducción a los tipos flotantes de C#

Para representar números reales, C# usa los siguientes tipos de números flotantes: float, double y decimal. La siguiente tabla muestra las características de los tipos de punto flotante:

Tipo flotante Rango aproximado Precisión Tamaño
float ±1.5 x 10−45 to ±3.4 x 1038 ~6-9 digits 4 bytes
double ±5.0 × 10−324 to ±1.7 × 10308 ~15-17 digits 8 bytes
decimal ±1.0 x 10-28 to ±7.9228 x 1028 28-29 digits 16 bytes

Prueba de igualdad

Dado que las computadoras solo pueden almacenar los números de punto flotante aproximadamente, provocará un comportamiento inesperado si intentas comparar dos números flotantes.

Por ejemplo, la siguiente expresión debería devolver true:

0.3 == 0.1 + 0.1 + 01;

Pero devuelve false en su lugar:

bool result = 0.3 == 0.1 + 0.1 + 01;
Console.WriteLine(result); // false

El motivo es que la expresión devuelve un valor que es aproximadamente igual a 0.3, no a 0.3. Ver lo siguiente:

Console.WriteLine(0.1 + 0.1 + 0.1);

Resultado:

0.30000000000000004

Literales flotantes

Cada tipo flotante tiene una forma literal específica. Y todos los literales flotantes pueden tener el separador de dígitos (_) para hacerlos más legibles.

float

Los literales flotantes tienen el sufijo f o F. Por ejemplo:

float rate = 5.2F;
float amount = 10_000.5f;

doble

Los literales dobles no tienen sufijo. Por ejemplo:

double dimension = 3.14
double radius = 1_000.5

O con el sufijo d o D así:

double dimension = 3.14d
double radius = 1_000.5D

decimal

Los literales decimales tienen el sufijo m o M:

decimal amount = 9.99m
decimal tax = 0.08M

Conversiones

C# convierte implícitamente un valor de float en double. Sin embargo, puedes usar una conversión explícita para convertir un valor de un tipo de punto flotante a otro.

Resumen

  • C# usa los tipos float, double y decimal para representar números reales.
  • Evita usar el operador de igualdad == para comparar dos números reales.
Compartir artículo:

Más artículos geniales

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla