GARANTIR DESCONTO

Fórum Conversão de String para Float #347202

10/10/2007

0

Olha que chatice!!!! :evil:

Tenho um campo string e quero transformá-lo em float, mas não estou conseguindo.
Ex

VAR VALOR : Real
BEGIN
    VSTRING := ´0000000001871´
    VALOR := TRANSFORMA(VSTRING)
   { //Aqui o valor da variável  fica 0 (Zero)
   }
END

function TForm.Transforma(S: string; D: Integer): Real;
// S: string passada para converter.
// D: qtde de decimais... se não informado default são duas.
var x: string;
    j: integer;
    flag : Boolean;
    resp: Real;
    V : String;
begin

    Flag := False;
    V :=´´;
    //For para retirar os ´0´ (zeros) antes do valor
    For j := 1 to length(S) do
       if (copy(s,j,1) <> ´0´) or Flag Then
       Begin
          V := V + copy(s,j,1);
          Flag := True;
       end;
    x:= copy(V,1,(length(V)-D)) +  ´,´ +  copy(V,(length(V)-(D-1)),D);
    resp := StrToFloat(x);
    // Aqui dá certo o valor da variavel RESP = 18,71
    Result := resp;
end;


Como viram, na minha funcao esta convertendo legal.
Mas o resultado dá sempre 0 (zero).
Tentei colocar o esta função na minha rotina, mesmo assim não deu certo

Tentei usar assim:

VALOR := IntToStr(´1871) / 100


Mas também não deu, o que pode ser?
Será minha configuração?
Na configuração do Windows, está como Português (Brasil) com ´,´ seprando decimal.

Uso DELPHI 7.0


Digitom

Digitom

Responder

Posts

11/10/2007

Digitom

:D
Pessoal descobri onde esta(va) o problema.

A função esta certinha e também a linha abaixo funciona

[list:06b54d81e3]VALOR := IntToStr(´1871) / 100; [/list:u:06b54d81e3]


O problema que estava retornando ZERO é que eu estava testando o valor mas não estava usando :oops: o valor da variavel - porque estou no inicio do rotina.

Fiz alguns testes depois usando o retorno e deu certinho.

Obrigado aos colegas que leram e quebraram a cabeça comigo. :wink:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar