B = 10000 * 11111111111111111111 Desbordameinto?

05/10/2003 - 03:51 por radogom | Informe spam
Hola
Alguien sabe Como solucionar de forma sencilla
Dim B as decimal
B = 10000 * 11111111111111111111 y que no de error de
desbordamiento

Saludos

Preguntas similare

Leer las respuestas

#1 Tako
06/10/2003 - 08:55 | Informe spam
"radogom" wrote in message
news:20cd201c38ae3$26a2f950$
Hola
Alguien sabe Como solucionar de forma sencilla
Dim B as decimal
B = 10000 * 11111111111111111111 y que no de error de
desbordamiento

Saludos





Aquí tienes un ejemplo en C#

Decimal a;
a = 10000 * (decimal)11111111111111111111;
MessageBox.Show (a.ToString());

y aquí otro en VB.NET (no se si habrá forma más limpia de hacerlo)

Dim a As Decimal
a = 10000 * CDec("11111111111111111111")
MessageBox.Show(a.ToString())
Respuesta Responder a este mensaje
#2 radogo
06/10/2003 - 19:00 | Informe spam
Gracias por responder
pero eso solo arregla un poquito
Dim a As Decimal
a = 10000 * CDec("12345678901234567890123456")
MessageBox.Show(a.ToString())
Esto por ejemplo ya no funciona
En cuanto el producto llega a 29 digitos da error de
desbordamiento
Gracias de todos modos

"radogom" wrote in message
news:20cd201c38ae3$26a2f950$
Hola
Alguien sabe Como solucionar de forma sencilla
Dim B as decimal
B = 10000 * 11111111111111111111 y que no de error de
desbordamiento

Saludos





Aquí tienes un ejemplo en C#

Decimal a;
a = 10000 * (decimal)11111111111111111111;
MessageBox.Show (a.ToString());

y aquí otro en VB.NET (no se si habrá forma más limpia


de hacerlo)

Dim a As Decimal
a = 10000 * CDec("11111111111111111111")
MessageBox.Show(a.ToString())


.

Respuesta Responder a este mensaje
#3 Leonardo Moreno Forero
07/10/2003 - 00:24 | Informe spam
Hola Radogo,

El decimal es un tipo de dato de 128 bit, es decir 16 bytes y el máximo
número que te soporta es +/-79,228,162,514,264,337,593,543,950,335 (las
comas son separadores de mil) y con 28 cifra decimales el máximo número que
soporta es +/- 7.9228162514264337593543950335. Si te sale error de
desbordamiento es por que excedes la capacidad del tipo de dato.

La verdad no entiendo en que clase de aplicación se utilizan números tan
grandes. Para trabajar con un tipo de dato mayor te tocaría construirlo con
código y realizar las operaciones de suma, resta, división, multiplicación,
etc. Pero ten encuenta que la sobrecarga de operadores solo está definida en
C# y C++.

Atentamente,

Leonardo Moreno Forero
MCP - MCSD
Bogotá - Colombia


"radogo" escribió en el mensaje
news:020d01c38c2b$53649950$
Gracias por responder
pero eso solo arregla un poquito
Dim a As Decimal
a = 10000 * CDec("12345678901234567890123456")
MessageBox.Show(a.ToString())
Esto por ejemplo ya no funciona
En cuanto el producto llega a 29 digitos da error de
desbordamiento
Gracias de todos modos

"radogom" wrote in message
news:20cd201c38ae3$26a2f950$
Hola
Alguien sabe Como solucionar de forma sencilla
Dim B as decimal
B = 10000 * 11111111111111111111 y que no de error de
desbordamiento

Saludos





Aquí tienes un ejemplo en C#

Decimal a;
a = 10000 * (decimal)11111111111111111111;
MessageBox.Show (a.ToString());

y aquí otro en VB.NET (no se si habrá forma más limpia


de hacerlo)

Dim a As Decimal
a = 10000 * CDec("11111111111111111111")
MessageBox.Show(a.ToString())


.

Respuesta Responder a este mensaje
#4 Tako
07/10/2003 - 08:39 | Informe spam
"radogo" wrote in message
news:020d01c38c2b$53649950$
Gracias por responder
pero eso solo arregla un poquito
Dim a As Decimal
a = 10000 * CDec("12345678901234567890123456")
MessageBox.Show(a.ToString())
Esto por ejemplo ya no funciona
En cuanto el producto llega a 29 digitos da error de
desbordamiento
Gracias de todos modos



Hombre, es que con números tan grandes ya te sales de tiesto, si
necesitas trabajar con números tan grandes habrás de utilizar librerías de
terceros o construir las tuyas propias.
Respuesta Responder a este mensaje
#5 Henry_Net
07/10/2003 - 19:30 | Informe spam
dim B as Double
B = 10000 * 11111111111111111111 y que no de error de

Utiliza el tipo double

"radogom" escribió en el mensaje
news:20cd201c38ae3$26a2f950$
Hola
Alguien sabe Como solucionar de forma sencilla
Dim B as decimal
B = 10000 * 11111111111111111111 y que no de error de
desbordamiento

Saludos


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida