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
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
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
Curtir tópico
+ 0
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:
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
Clique aqui para fazer login e interagir na Comunidade :)