duda aritmetica .net 2.0

04/04/2006 - 17:12 por Mauro SB. | Informe spam
cual es la diferencia entre
rec.SetInt64(1, i ^ 2)
y
rec.SetInt64(1, i ^ i)

la segunda me da error de overflow
el codigo completo:

For i = 0 To 100000
rec.SetString(0, "row " & i.ToString())
rec.SetInt64(1, i ^ 2)
SqlContext.Pipe.SendResultsRow(rec)
Next

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
04/04/2006 - 17:33 | Informe spam
"Mauro SB." wrote in message
news:O9cj0o$
cual es la diferencia entre
rec.SetInt64(1, i ^ 2)
y
rec.SetInt64(1, i ^ i)

la segunda me da error de overflow



El primero es "i al cuadrado" y el segundo es "i elevado a i", lo cual no
es de extrañar que produzca un desbordamiento a nada que i vaya creciendo.
Respuesta Responder a este mensaje
#2 Mauro SB.
04/04/2006 - 21:31 | Informe spam
perdon el segundo era

rec.SetInt64(1, i * i)

"Alberto Poblacion" wrote
in message news:eiAWa0$
"Mauro SB." wrote in message
news:O9cj0o$
> cual es la diferencia entre
> rec.SetInt64(1, i ^ 2)
> y
> rec.SetInt64(1, i ^ i)
>
> la segunda me da error de overflow

El primero es "i al cuadrado" y el segundo es "i elevado a i", lo cual


no
es de extrañar que produzca un desbordamiento a nada que i vaya creciendo.



Respuesta Responder a este mensaje
#3 José Manuel Agüero
05/04/2006 - 00:13 | Informe spam
Hola, Mauro:

Este tipo de problemas son más fáciles de detectar con Option Strict On.
rec.SetInt64(1, i ^ 2) evalúa i ^ 2 como Double y lo convierte a Long.
rec.SetInt64(1, i * i) evalúa i * i como Integer y da error para valores superiores a 46340.

Saludos.


"Mauro SB." escribió en el mensaje news:O9cj0o$
| cual es la diferencia entre
| rec.SetInt64(1, i ^ 2)
| y
| rec.SetInt64(1, i ^ i)
|
| la segunda me da error de overflow
| el codigo completo:
|
| For i = 0 To 100000
| rec.SetString(0, "row " & i.ToString())
| rec.SetInt64(1, i ^ 2)
| SqlContext.Pipe.SendResultsRow(rec)
| Next
Respuesta Responder a este mensaje
#4 Mauro SB.
05/04/2006 - 14:20 | Informe spam
entiendo muchas gracias!!!!
"José Manuel Agüero" <chema012 en hotmail.com> wrote in message
news:
Hola, Mauro:

Este tipo de problemas son más fáciles de detectar con Option Strict On.
rec.SetInt64(1, i ^ 2) evalúa i ^ 2 como Double y lo convierte a Long.
rec.SetInt64(1, i * i) evalúa i * i como Integer y da error para valores
superiores a 46340.

Saludos.


"Mauro SB." escribió en el mensaje
news:O9cj0o$
| cual es la diferencia entre
| rec.SetInt64(1, i ^ 2)
| y
| rec.SetInt64(1, i ^ i)
|
| la segunda me da error de overflow
| el codigo completo:
|
| For i = 0 To 100000
| rec.SetString(0, "row " & i.ToString())
| rec.SetInt64(1, i ^ 2)
| SqlContext.Pipe.SendResultsRow(rec)
| Next
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida