Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-01

formatfloat o formatcurr to float

3 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Paola Bruccoleri

Hola todos..

debe ser una pavada pero no lo encuentro!

cargo un TStringGrid con determinados valores. Los importes los cargo as�:
       grdPendiente.Cells[9, i] := FormatCurr('#,#.00',
qryPendiente.FieldByName('debe').AsFloat);
o
       grdPendiente.Cells[9, i] := FormatFloat(',.00',
qryPendiente.FieldByName('debe').AsFloat);

(prob� de las 2 formas)

Ahora, debo pasar al rev�s.. lo que est� en el stringgrid a float para
pode sumarlo (ya no tengo acceso al valor original)
hago esto:
var
   nTotal: double;
begin
      nTotal := StrToFloat(grdPendiente.Cells[9, 1]);
......

me sale el error..
"1,500.00" is an invalid float

prob� tb definirlo como currency y usar StrToCurr.. pero obviamente joroban los . y ,
Quiz�s haya que sacarlos "a mano"...

alguna sugerencia?
muchas grcias!

Reply by email

José Mejuto
to Paola Bruccoleri

El 08/01/2013 23:42, Paola Bruccoleri escribi�:

debe ser una pavada pero no lo encuentro!

No lo es tanto la verdad... ya me he visto e estas :)

Show quoted text 5 lines
me sale el error.. "1,500.00" is an invalid float prob� tb definirlo como currency y usar StrToCurr.. pero obviamente joroban los . y , Quiz�s haya que sacarlos "a mano"...

Pues la ',' s�lo, ya que s�lo puede llevar punto decimal, por lo tanto funci�n ad hoc:

function LocaleStrToFloat(aValue as string): Double;
begin
aValue:=StringReplace(aValue,DefaultFormatSettings.ThousandSeparator,'',[rfReplaceAll]);
Result:=StrToFloat(aValue);
end;

No lo he probado, pero deber�a de funcionar...

Reply by email

Paola Bruccoleri
to José Mejuto

El 08/01/2013 08:56 p.m., Jos� Mejuto escribi�:

Show quoted text 25 lines
El 08/01/2013 23:42, Paola Bruccoleri escribi�: > debe ser una pavada pero no lo encuentro! No lo es tanto la verdad... ya me he visto e estas :) > me sale el error.. > "1,500.00" is an invalid float > prob� tb definirlo como currency y usar StrToCurr.. pero obviamente > joroban los . y , > Quiz�s haya que sacarlos "a mano"... Pues la ',' s�lo, ya que s�lo puede llevar punto decimal, por lo tanto funci�n ad hoc: function LocaleStrToFloat(aValue as string): Double; begin aValue:=StringReplace(aValue,DefaultFormatSettings.ThousandSeparator,'',[rfReplaceAll]); Result:=StrToFloat(aValue); end; No lo he probado, pero deber�a de funcionar...

Hola Jos�..
funcion� perfectamente! muchas gracias!!
Saludos!!

Reply by email