Funcao - str(money)tofloat

Top  Previous  Next

// Funcao excelente para converter string em float

==================================================

Exemplo                    Result

-----------------------    -------       

Str2float(' 10 ', -1);          10

Str2float('A'   , -1);          -1

Str2float('R$ 0,11');         0.11

Str2float(' 1.000,20');    1000.20

Str2float('1.00');               0

Str2float('99,99z',13);         13

 

// Sintaxe

==========

function Str2Float(const Valor: string; RetornoFalse: Extended = 0): Extended;

 

Valor        = Valor em formato string para converter para float (aceita ".", " ", "R$").

RetornoFalse = Valor retornado caso a string não pode ser convertida.

 

// Completo

===========

function Str2Float(const Valor: string; RetornoFalse: Extended = 0): Extended;

var

  S: string;

begin

  S := StrTran(Valor, ThousandSeparator, ''); // tira separador de milhar

  S := StrTran(S    , CurrencyString   , ''); // tira o "R$"

  if not TextToFloat( PChar(S), Result, fvExtended ) then Result := RetornoFalse;

end;

 

// Esta tras result para usar em SQL:

function Str2FloatAnsi(const Valor: string; RetornoFalse: Extended = 0): string;

begin

  Result := StrTran( FloatToStr(Str2Float(Valor, RetornoFalse)), DecimalSeparator, '.'); // Retorna para o SQL

end;