Delphi - Dar formato a un numero

   
Vista:

Dar formato a un numero

Publicado por jesusalba (14 intervenciones) el 27/08/2008 18:27:45
Saludos.

Estoy desarrollando una aplicacion en delphi 7 con firebird; y estoy mostrando el valor del campo costo en un edit. y quiero que se muestre su valor a 3 decimales porque por ejemplo de un codigo tengo en la base de datos un costo de 258.65 y deseo que me muestre 258.650, y en otros tengo cantidades cerradas y tambien deseo los decimales. ya probe con maskedit y en el editmask le puse ###.### pero me lo sigue mostrando igual, ademas de que cuando el costo es 1.65, solo me desplega 1__.65_

tambien probe con la funcion formatfloat, pero igual solo me muestra dos decimales. ¿hay alguna sugerencia?........Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dar formato a un numero

Publicado por pacopaz (104 intervenciones) el 27/08/2008 18:37:44
Pues la respuesta es el uso de FormatFloat. asegúrate de que sea de esta forma:
FormatFloat('###.000',[Numero]);

donde
[Numero] es el número con punto flotante que deseas formatear.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dar formato a un numero

Publicado por jesusalba (14 intervenciones) el 27/08/2008 19:15:25
la dificultad radica cuando el segundo o tercer decimal es cero y por ello no lo pone
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dar formato a un numero

Publicado por pacopaz (104 intervenciones) el 27/08/2008 19:20:22
Puedes poner algún ejemplo de lo que refieres, por que la verdad es que así no lo entiendo mucho.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dar formato a un numero

Publicado por jesusalba (14 intervenciones) el 27/08/2008 19:31:42
procedure TConsXcodigo.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var
cifa: Extended;
begin
If Key = Vk_Return Then
///uentaLetras:=Length(EDIT1.text);
// If CuentaLetras >= 5 Then
// Begin
If DataModule3.Ibopuente.FindKey([edit1.text]) Then
begin
Edit2.Text:=IntToStr(DataModule3.IboPuente.FieldbyName('STOCK').AsInteger);
Edit3.Text:=DataModule3.IboPuente.FieldbyName('PROMO').AsString;
Edit4.Text:=DataModule3.IboPuente.FieldbyName('MARCA').AsString;
Edit5.Text:=DataModule3.IboPuente.FieldbyName('MODELO').AsString;
Edit6.Text:=DataModule3.IboPuente.FieldbyName('DESCRIP').AsString;
Edit7.Text:=DataModule3.IboPuente.FieldbyName('ORIGINAL').AsString;
Edit8.Text:=DataModule3.IboPuente.FieldbyName('FABRICANTE').AsString;
Edit9.Text:=DataModule3.IboPuente.FieldbyName('ANO').AsString;
//Edit10.Text:=FloatToStr(DataModule3.IboPuente.FieldbyName('CIF').AsFloat);
cifa:=DataModule3.IboPuente.FieldbyName('CIF').AsFloat;
FormatFloat('##0.000',cifa);
Edit10.Text:=FloatToStr(cifa);
AQUI ESTA EL DETALLE, EN MI BASE DE DATOS TENGO EL VALOR 1.45 y es el que me desplega en el edit; y deseo que me desplegue el valor en el edit a 3 decimales indistintamente del numero de enteros.

Edit11.Text:=DataModule3.IboPuente.FieldbyName('TIPO').AsString;
Edit20.Text:=DataModule3.IboPuente.FieldbyName('OCULTO').AsString;
Edit21.Text:=DataModule3.IboPuente.FieldbyName('FORA').AsString;
Edit12.Text:=FloatToStr(DataModule3.IboPuente.FieldbyName('NP').AsFloat);
Edit13.Text:=IntToStr(DataModule3.IboPuente.FieldbyName('CU').AsInteger);
Edit14.Text:=FloatToStr(DataModule3.IboPuente.FieldbyName('FT').AsFloat);
Edit15.Text:=FloatToStr(DataModule3.IboPuente.FieldbyName('PRECIO').AsFloat);
Edit16.Text:=IntToStr(DataModule3.IboPuente.FieldbyName('SEVEN').AsInteger);
Edit17.Text:=IntToStr(DataModule3.IboPuente.FieldbyName('MIZUMO').AsInteger);
Edit18.Text:=DataModule3.IboPuente.FieldbyName('FABRICA').AsString;
Edit19.Text:=FloatToStr(DataModule3.IboPuente.FieldbyName('FAC').AsFloat);
Bitbtn2.setfocus;
ShowMessage(IntToStr(DataModule3.IBOEmbarque.RecordCount));
end
Else
begin
ShowMessage ('Codigo Inexistente');
End;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dar formato a un numero

Publicado por pacopaz (104 intervenciones) el 27/08/2008 19:49:24
Mi hermano, el problema es que el FormatFloat es una función que devuelve la cadena formateada en base a el número que le envías. Sin embargo, no le estás regresando el valor a ningún lado. Lo que supongo que esperas que haga es que en cifra guarde la cadena formateada y eso es incorrecto. Lo que debes hacer es lo siguiente:

cifa:=DataModule3.IboPuente.FieldbyName('CIF').AsFloat;
Edit10.Text:=FormatFloat('##0.000',cifa);

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dar formato a un numero

Publicado por jesusalba (14 intervenciones) el 27/08/2008 23:23:41
Muchisimas Gracias. ya quedò
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dar formato a un numero

Publicado por M@rceloL (43 intervenciones) el 27/08/2008 18:38:41
¿Probaste con FormatFloat y #,##0.000? Porque eso me funciona muy bien a mí.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dar formato a un numero

Publicado por M@rceloL (1 intervención) el 27/08/2008 18:39:21
Ops, se cruzaron los post...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar