multiplicacion variables uint

02/10/2007 - 09:20 por MoRpHeOo | Informe spam
Buenas grupo,

tengo una duda con la multiplicacion en csharp.

Cuando realizo lo siguiente no lo realiza como yo pienso que debiera
hacerlo,
¿ me podriais hechar una mano de como lo calcula?.

Gacias

uint a = 595842;
uint b = 3243641;
uint var = 0;

var = a * b;

Console.WriteLine("Valor de la multiplicacion: {0}",var);

Me devuelve: 4257224818 y no se bien como lo calcula.



MoRpHeOo
 

Leer las respuestas

#1 RFOG
02/10/2007 - 09:31 | Informe spam
El resultado de la multiplicación es mayor que el valor máximo que dicha
variable puede contener y se produce lo que se llama un desbordamiento u
overflow en inglés.

La solución pasa por usar Int64 en lugar de enteros normales, o utilizar la
clase Decimal, pero si mientras se trabaja en coma flotante siempre hay que
tener en cuenta el error de redondeo (recordemos el último fallo del excel),
en aritmética de enteros hay que tener en cuenta los desbordamientos.

Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
Donde acaba el deseo comienza el temor.

"MoRpHeOo" wrote in message
news:%
Buenas grupo,

tengo una duda con la multiplicacion en csharp.

Cuando realizo lo siguiente no lo realiza como yo pienso que debiera
hacerlo,
¿ me podriais hechar una mano de como lo calcula?.

Gacias

uint a = 595842;
uint b = 3243641;
uint var = 0;

var = a * b;

Console.WriteLine("Valor de la multiplicacion: {0}",var);

Me devuelve: 4257224818 y no se bien como lo calcula.



MoRpHeOo

Preguntas similares