Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2014
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Saber la unidad de un número

Hola.
Hay alguna función en delphi que devuelva la unidad de un número entero?
Ejemplo:
Unidad(1234)-> 4
O en su defecto, como se haría?

Un saludo
Responder Con Cita
  #2  
Antiguo 16-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luís.

Según entendí, te referís a la cantidad de dígitos de una cifra, te paso tres formas:

Logarímica:
Código Delphi [-]
function Digitos(Num: Integer): Integer;
begin
  Result:= Trunc(Ln(Num)/Ln(10))+1
end;

Iterativa:
Código Delphi [-]
function Digitos(n: Integer): Integer;
begin
  Result:=0;
  while n > 0 do
  begin
    n:= n div 10;
    Inc(Result);
  end;
end;

Recursiva:
Código Delphi [-]
function Digitos(Num:Integer): Integer;
begin
  if Num mod 10 = 0 then
    Digitos:= 0
  else
    Digitos:= 1 + Digitos3(Num div 10);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 16-09-2014
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Hola ecfisa.

Gracias por responder.
Quizás no me explique correctamente.
Quería saber la unidad de un número dado, o sea, el último número.
1538 -> 8
2906753 -> 3

Un saludo.
Responder Con Cita
  #4  
Antiguo 16-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo Luis.

Me quedé pensando que tal vez malinterpreté ( el 4 con los cuatro dígitos del ejemplo ) y te referías a obtener la unidad de una cifra.

Si fué así, simplemente:
Código Delphi [-]
  Unidad:= Numero mod 10;

Saludos

Edito: No había visto tu último mensaje pero ya me parecía que había entedido mal...
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-09-2014 a las 20:34:11.
Responder Con Cita
  #5  
Antiguo 16-09-2014
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Me funciona perfecto.
Muchas gracias.
Ya me había armado algo, lo pongo igualmente aquí.
Código Delphi [-]
Label1.Caption := Copy((IntToStr(14752343240)),Length(IntToStr(14752343240)),1);
tu código muchisimo mejor.
Un saludo.
Responder Con Cita
  #6  
Antiguo 16-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Luis M. Ver Mensaje
tu código muchisimo mejor.

Responder Con Cita
  #7  
Antiguo 17-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luis.

Sin embargo, tu función puede ser útil en casos especiales en que sería imposible usar la otra, por ejemplo:
Código Delphi [-]
var
  numStr: string;
  ultDig: Integer;
begin
  numStr:= '99147529999343245987123598199952245933587';
  ultDig:= StrToInt(Copy(numStr, Length(numStr), 1));
  ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-09-2014 a las 06:49:59.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber si hay disco en la unidad chinchan C++ Builder 2 23-02-2013 02:28:02
Saber si una unidad está disponible. vpepen Varios 2 12-04-2007 17:54:49
Saber nombre de la unidad de CD rex Varios 2 18-08-2005 23:16:08
Saber si hay un cd en la unidad de CD-ROM elpinjum Varios 0 22-10-2004 13:04:24
Modificar el numero de serie de una unidad de disco duro Sick boy API de Windows 2 06-10-2004 12:45:33


La franja horaria es GMT +2. Ahora son las 12:41:22.


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