Double types great number representation

Hola a todos,

En esta oportunidad quisiera hacer dirigir especial atencion sobre los tipos de datos utilizados para la realizacion de calculos. Hace un tiempo ya habia mencionado un tema como este, sin embargo es necesario entender que cuando se selecciona u tipo de dato se deben tener varios temas en cuenta. Esto implica no realizar suposiciones sobre los tipos de datos. A lo que me refiero puntualmente se puede explicar en las siguientes lineas de codigo:

int number1 = 0;

int number2 = 1;

int result = number1 / number1;

Cual seria el resultado esperado de estas lineas de codigo?

Obviamente el compilador nada mas advierte que no es posible una division por cero y sacara un error en compilacion. Ahora que pasa si definimos las mismas lineas de codigo, pero cambiamos el tipo de dato a double?

double number1 = 0;

double number2 = 1;

double result = number1 / number1;

Para sorpresa de muchos el compilador no saca error de compilacion y tampoco se presentan errores en tiempo de ejecucion.

Esto pasa porque el tipo de dato double, tiene una representacion para Infinito (Infinity), tanto positivo como negativo, luego es posible realizar la siguiente pregunta sobre ese tipo de dato como:

if (double.IsInfinity(result))

{

Console.WriteLine(“El resultado tiende a Infinito”);

}

Es importante ver todo lo que tiene double!! los invito a explorar mas sobre el tipo de dato y asi pensar en desarrollar calculos mas precisos y no asumir el comportamiento de los tipos de datos como una regla general.

Saludos,

Roberto Erazo

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s