![]() |
Longitud maxima integer
var digitos: int64;
begin digitos := 21011715373203075755142800; ....... end; Me da el error "21011715373203075755142800, is not valid integer value" Alguien sabe porque, si he leido que int64 es 2 elevado a 68 como es posible que no abarque ese rango? |
9223372036854775807 {Valor máximo de un Int64 (High(Int64))}
21011715373203075755142800 {Tu valor} |
Cita:
// Saludos |
Ok, entonces como tengo que declarar esa variable?
|
¿Vas a necesitar hacer cálculos sobre este tipo de datos?
|
Para manejo de enteros tan grandes me parece que tendrás que usar el tipo TBcd de la unidad FmtBcd. El problema es que toda la aritmética para estos valores tendrás que hacerla mediante funciones especiales (busca BCD en la ayuda de Delphi) y no será muy conveniente si deseas gran rapidez de cálculos.
// Saludos |
Veamos, lo que necesito es calcular el código IBAN asociado al país, éste es mi procedimiento:
procedure TForm1.TButtCalculaIBANClick(Sender: TObject); var dividendo,divisor,iban,cuenta: string; resto,resultado:int64; i:smallint; begin cuenta := '21001715370200075755142800'; i:=0; divisor:='97'; i:=length(divisor); dividendo:=copy(cuenta,0,i); while strtoint64(dividendo) < strtoint(divisor) do begin i:=i+1; dividendo:=copy(cuenta,0,i); while (i < length(cuenta) ) do begin resto:=strtoint64(dividendo) mod strtoint(divisor); i:=i+1; dividendo:=inttostr(resto)+copy( cuenta,i+1,(i) ); end; resto:=strtoint64(dividendo) mod strtoint(divisor); resultado:=(98-resto); end; EdtIBAN.Text:=inttostr(resultado); end; ... Y el problema lo tengo a la hora de asignarle a la variable los 20 dígitos de la cuenta + 142800. ¿Existe otra manera de calcular este código en delphi? He probado lo del bcd y la verdad es que se complica un poco, debe haber otra manera más sencilla de resolverlo. Saludos. |
Sera...¡¡
Sera que eres paisano de Nopatic.. hizo la misma pregunta y hasta me invito a desayunar, espero que tambien me invites por que te sacare del mismo problema....
checate esta link http://www.clubdelphi.com/foros/showthread.php?t=8922 si te sirve nada mas junto otros 10 y ya estare en España desayunando gratis... :D |
Cita:
Saludos! |
Muchas gracias!
Efectivamente Sanxpue, esa funcion va de maravilla, justo lo que necesitaba gracias tambien a Roman y Federico por su ayuda. Por cierto, lo del desayuno sigue en pie, no conozco a Nopatic pero vivo cerca de Valencia, asi que si un dia estás dispuesto a cruzar el charco ya sabes q mas de uno estaría encantado con un invitarte a un desayuno,jeje.... Saludos. |
Ya vez...
Te dije que te iba a servir..pero nada mas me faltan otros 5 para que sea completa la semana...y otros 7 para la comida y otros 7 para la cena y otro pal hospedaje.. osease que ya falta poco.. ahora si me quieres ayudar como yo, diles a tus amigos programadores que pongan la misma pregunta jejejeje :confused:
|
La franja horaria es GMT +2. Ahora son las 13:16:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi