Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Operaciones con numeros muy grandes (https://www.clubdelphi.com/foros/showthread.php?t=39352)

VictorPenyalver 17-01-2007 20:10:28

Operaciones con numeros muy grandes
 
Hola a todos,

Tengo una duda, como puedo dividir o calcular el modulo de un numero que tiene 30 digitos?

He probado con todos los tipos de datos, pero con todos me da error.


Necesito calcular el digito de control de una cuenta bancaria para poder formar su codigo IBAN, pero durante el proceso necesito realizar la operacion CuentaBancaria(30 digitos) mod 97. Falla al realizar esta operación.

Agradezco vuestra ayuda!

seoane 17-01-2007 23:52:30

Esto es lo único que se me ocurre hasta que venga roman y me deje en ridículo :p

Código Delphi [-]
uses FMTBcd;

function Modulo97(Numero: string): Integer;
var
  s,t: TBcd;
begin
  s:= StrToBCD(Numero);
  BcdDivide(s,97,t);
  t.Precision:= t.Precision - t.SignSpecialPlaces;
  t.SignSpecialPlaces:= 0;
  BcdMultiply(t,97,t);
  BcdSubtract(s,t,s);
  Result:= BcdToInteger(S,TRUE);
end;

// Por ejemplo
ShowMessage(IntToStr(Modulo97('123456789012345678901234567890')));

... aunque me queda la sensación de estar matando moscas a cañonazos

roman 18-01-2007 00:02:02

Cita:

Empezado por seoane
Esto es lo único que se me ocurre hasta que venga roman y me deje en ridículo

:eek: :confused: ¿Y esto? :confused: :eek:

De hecho cuando vi el hilo, lo primero que pensé fue en unas rutinas que habías hecho tú para manejar números grandes y estuve a punto de recomendarlas pero no recordaba si tenías algo para el módulo.

// Saludos

VictorPenyalver 18-01-2007 00:06:59

Lo he probado y va perfecto, muchas gracias!!
Sois unos fenomenos!


La franja horaria es GMT +2. Ahora son las 18:26:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi