Almacenar y operar con un entero de 26 dígitos

27/02/2004 - 12:46 por Lara | Informe spam
Hola grupo,

Necesito sacar el resto de dividir un número de 26 digitos entre otro de 2
dígitos

Ejemplo 1:
select 00120345030000067890142800 -
(round((00120345030000067890142800/97),0,1)) * 97

Esta operación me devuelve 91, que es el resto de dividir
00120345030000067890142800 entre 97.

Necesito almacenar el número de 26 dígitos en una variable. Si lo hago en
una variable de tipo Int, no me deja; lo he intentado con otros tipos de
datos a ver qué ocurría, y p.e, con el tipo Real (que lo almacena como:
1,20345E+23) al realizar la operación anterior, obtengo una serie de números
que no entiendo...
lo mismo me ocurre con el tipo Float..

Ejemplo 2:
Declare @numero real
Set @numero120345030000067890142800
select @numero-(round((@numero/97),0,1)) * 97

El resultado ya no es 91, sino todos estos números... 3799912185593856.0,
que al intentar convertirlos a un entero se produce un desbordamiento.

Hay alguna forma de obtener el resto?

Muchas gracias,
Lara
 

Leer las respuestas

#1 ulises
27/02/2004 - 14:59 | Informe spam
Utiliza decimal(26) para almacenar la variable.

Saludos,
Ulises

Hola grupo,

Necesito sacar el resto de dividir un número de 26


digitos entre otro de 2
dígitos

Ejemplo 1:
select 00120345030000067890142800 -
(round((00120345030000067890142800/97),0,1)) * 97

Esta operación me devuelve 91, que es el resto de dividir
00120345030000067890142800 entre 97.

Necesito almacenar el número de 26 dígitos en una


variable. Si lo hago en
una variable de tipo Int, no me deja; lo he intentado con


otros tipos de
datos a ver qué ocurría, y p.e, con el tipo Real (que lo


almacena como:
1,20345E+23) al realizar la operación anterior, obtengo


una serie de números
que no entiendo...
lo mismo me ocurre con el tipo Float..

Ejemplo 2:
Declare @numero real
Set @numero120345030000067890142800
select @numero-(round((@numero/97),0,1)) * 97

El resultado ya no es 91, sino todos estos números...


3799912185593856.0,
que al intentar convertirlos a un entero se produce un


desbordamiento.

Hay alguna forma de obtener el resto?

Muchas gracias,
Lara




.

Preguntas similares