[RESUELTO] Dar formato a numeros enteros
Comenzado por
GUN10
, feb 25 2010 06:46
8 respuestas en este tema
#1
Escrito 25 febrero 2010 - 06:46
Hola como estan, estoy programando en Delphi 5 y tengo la siguiente pregunta.
En mi formulario tengo 5 label, en los cuales muestro numeros enteros aleatorios, necesito saber si hay alguna funcion para mostrar los numeros de la siguite manera.
Por ejemplo: 35153209, que lo muestre 35.153.209
Utilizo la funcion IntToStr() para convertir el valor entero.
Se que con la funcion FloatToStrF() puedo dar un formato especificado a traves de los parametros que envio.
Hay algo parecido para trabajar con numeros enteros?
Gracias!
En mi formulario tengo 5 label, en los cuales muestro numeros enteros aleatorios, necesito saber si hay alguna funcion para mostrar los numeros de la siguite manera.
Por ejemplo: 35153209, que lo muestre 35.153.209
Utilizo la funcion IntToStr() para convertir el valor entero.
Se que con la funcion FloatToStrF() puedo dar un formato especificado a traves de los parametros que envio.
Hay algo parecido para trabajar con numeros enteros?
Gracias!
#2
Escrito 25 febrero 2010 - 07:13
Hola, ¿intentaste usar la función Format?
#3
Escrito 25 febrero 2010 - 07:21
Hola
FloatToStrF( 1234.5678, ffCurrency, 8, 2 ) devuelve 1.234,57 €
FloatToStrF( 1234.5678, ffCurrency, 8, 4 ) devuelve 1.234,5678 €
FloatToStrF( 1234.5678, ffGeneral, 8, 2 ) devuelve 1234,5678
FloatToStrF( 1234.5678, ffGeneral, 8, 4 ) devuelve 1234,5678
FloatToStrF( 1234.5678, ffExponent, 8, 2 ) devuelve 1,2345678E+03
FloatToStrF( 1234.5678, ffExponent, 8, 4 ) devuelve 1,2345678E+0003
FloatToStrF( 1234.5678, ffFixed, 8, 2 ) devuelve 1234,57
FloatToStrF( 1234.5678, ffFixed, 8, 4 ) devuelve 1234,5678
FloatToStrF( 1234.5678, ffNumber, 8, 2 ) devuelve 1.234,57
FloatToStrF( 1234.5678, ffNumber, 8, 4 ) devuelve 1.234,5678
Format( '%d', [1234] ) devuelve -1234
Format( '%e', [1234.5678] ) devuelve 1,23456780000000E+003
Format( '%f', [1234.5678] ) devuelve 1234,57
Format( '%g', [1234.5678] ) devuelve 1234,5678
Format( '%n', [1234.5678] ) devuelve 1.234,57
Format( '%m', [1234.5678] ) devuelve 1.234,57 €
sTexto := 'Prueba';
Format( '%p', [sTexto] ) devuelve 0012FE14
Format( '%s', [sTexto] ) devuelve Prueba
Format( '%u', [1234] ) devuelve 1234
Format( '%x', [1234] ) devuelve 4D2
Ejemplo:
Saludos
FloatToStrF( 1234.5678, ffCurrency, 8, 2 ) devuelve 1.234,57 €
FloatToStrF( 1234.5678, ffCurrency, 8, 4 ) devuelve 1.234,5678 €
FloatToStrF( 1234.5678, ffGeneral, 8, 2 ) devuelve 1234,5678
FloatToStrF( 1234.5678, ffGeneral, 8, 4 ) devuelve 1234,5678
FloatToStrF( 1234.5678, ffExponent, 8, 2 ) devuelve 1,2345678E+03
FloatToStrF( 1234.5678, ffExponent, 8, 4 ) devuelve 1,2345678E+0003
FloatToStrF( 1234.5678, ffFixed, 8, 2 ) devuelve 1234,57
FloatToStrF( 1234.5678, ffFixed, 8, 4 ) devuelve 1234,5678
FloatToStrF( 1234.5678, ffNumber, 8, 2 ) devuelve 1.234,57
FloatToStrF( 1234.5678, ffNumber, 8, 4 ) devuelve 1.234,5678
Format( '%d', [1234] ) devuelve -1234
Format( '%e', [1234.5678] ) devuelve 1,23456780000000E+003
Format( '%f', [1234.5678] ) devuelve 1234,57
Format( '%g', [1234.5678] ) devuelve 1234,5678
Format( '%n', [1234.5678] ) devuelve 1.234,57
Format( '%m', [1234.5678] ) devuelve 1.234,57 €
sTexto := 'Prueba';
Format( '%p', [sTexto] ) devuelve 0012FE14
Format( '%s', [sTexto] ) devuelve Prueba
Format( '%u', [1234] ) devuelve 1234
Format( '%x', [1234] ) devuelve 4D2
Ejemplo:
delphi
procedure TForm1.Button1Click(Sender: TObject); var n: integer; begin n:= 35153209; label1.Caption:= FloatToStrF(n, ffNumber, 8, 0 ); end;
Saludos
#4
Escrito 25 febrero 2010 - 07:59
Gracias por sus rapidas respuestas.
La funcion FloatToStr() la conocia. Pero la duda que tengo es si es correcto utilizarla al estar trabajando con enteros. En realidad lo que hago es generar numeros aleatorios y mostrarlos en los Label. Y son numeros grandes, es por eso que quiero aplicarle formato, en este caso solo el punto de mil.
La funcion FloatToStr() la conocia. Pero la duda que tengo es si es correcto utilizarla al estar trabajando con enteros. En realidad lo que hago es generar numeros aleatorios y mostrarlos en los Label. Y son numeros grandes, es por eso que quiero aplicarle formato, en este caso solo el punto de mil.
#5
Escrito 25 febrero 2010 - 08:16
yo lo hiciera con formatfloat
FormatFloat('#,##0', numero);
no hay problema con los tipos
FormatFloat('#,##0', numero);
no hay problema con los tipos
#6
Escrito 25 febrero 2010 - 08:53
yo lo hiciera con formatfloat
FormatFloat('#,##0', numero);
no hay problema con los tipos
Funciono con esta, lo mismo que con FloatToStrF();
Pero me surgio un nuevo problemita a la hora de comparar los numeros ingresados. Aqui edejo el codigo para explicarme mejor
delphi
if Emenor1.text <> '' then begin if strtoint(Emenor1.text)=strtoint(Lnum1.caption)-1 then begin Emenor1.color:=CLlime; end else begin Emenor1.color:=CLred; end; end;
"Lnum1" es el label que me muestra el numero formateado por ejemplo "10.000" (diez mil)
y "Emenor1" es el edit donde se tiene que cargar un numero menos que el de label "9.999"
el problema es que a la hora de verificar me dice que el valor que hay en label no es un entero valido.
lo mismo me dice del Edit cuando quiero poner el numero con (.) punto, no logro comparar los numeros. Alguna idea ?
#7
Escrito 25 febrero 2010 - 11:12
Hola
Puedes hacer uso de la función StringReplace
Salud OS
Puedes hacer uso de la función StringReplace
delphi
procedure TForm1.Button1Click(Sender: TObject); begin if StrtoInt(StringReplace(Emenor1.text,',','',[rfReplaceAll])) = StrtoInt(StringReplace(Lnum1.caption,',','',[rfReplaceAll]))-1 then Emenor1.color := clLime else Emenor1.color := clRed; end;
Salud OS
#8
Escrito 26 febrero 2010 - 08:18
delphi
procedure TForm1.Button1Click(Sender: TObject); begin if StrtoInt(StringReplace(Emenor1.text,ThousandSeparator,'',[rfReplaceAll])) = StrtoInt(StringReplace(Lnum1.caption,ThousandSeparator,'',[rfReplaceAll]))-1 then Emenor1.color := clLime else Emenor1.color := clRed; end;
Así evitamos los errores con los puntos.
#9
Escrito 26 febrero 2010 - 02:26
Gracias por la funcion, no la conocia.
Ahora si funciona correctamente, por ahora lo utilizo con el punto (.) porque es lo unico que permito cargar, pero tengo en cuenta lo de ThousandSeparator.
Ahora si [RESUELTO]
Ahora si funciona correctamente, por ahora lo utilizo con el punto (.) porque es lo unico que permito cargar, pero tengo en cuenta lo de ThousandSeparator.
Ahora si [RESUELTO]