StrFloat só para os FERAS mesmo

27/02/2003

0

cara já tentei em outros foruns e niguém consegue responder , vejam esta linha de codigo abaixo:

txtpedagio.Text:= formatfloat(´#,,0.00´,StrtoFloat(txtpedagio.text));

bom tudo blz digito qq valor no txtpedagio, tipo 30,00 , 32,32 , 23,56 e assim por diante mais se eu digitar qq coisa que tenha ponto tipo ,
1.234,55 dá pau por causa desse ponto , alguém sabe uma solução .....


Anonymous

Anonymous

Responder

Posts

27/02/2003

Louzada

Você deve formatar cas casas decimais antes:

DecimalSeparator:= ´,´;


Responder

27/02/2003

Anonymous

como assim formatar as casas decimais antes ? pode me explicar ?


Responder

27/02/2003

Michael

Caro DragonWar,
o Delphi não trabalha com pontos (.) para expressar casas de milhares nos números. O número 1.000 para o Delphi é 1000, 1.234,50 é 1234,50. Por isso qdo vc usa a função StrToFloat, ele gera um erro.

Solução: Não use pontos, ou melhor, use uma função para retirar todos os caracteres inválidos antes de atribuir o valor à função StrToFloat.

Espero ter ajudado!

Michael :D


Responder

27/02/2003

Anonymous

A sua formatação do ´FormatFloat´ está no formato americano (com a vírgula e ponto, na máscara) e você quer entrar com um número no formato de moeda nacional nossa.
É muito simples, apenas não digite o ponto.


cara já tentei em outros foruns e niguém consegue responder , vejam esta linha de codigo abaixo: txtpedagio.Text:= formatfloat(´#,,0.00´,StrtoFloat(txtpedagio.text)); bom tudo blz digito qq valor no txtpedagio, tipo 30,00 , 32,32 , 23,56 e assim por diante mais se eu digitar qq coisa que tenha ponto tipo , 1.234,55 dá pau por causa desse ponto , alguém sabe uma solução .....



Responder

27/02/2003

Anonymous

bom alguns falaram que o Delphi naum trabalha com (.) ponto ok, outros falaram para usar o DecimalSeparator , naum deu certo ,,,,,

o que fazer entaum, naum digito o (.) ponto, entaum como fica um valor tipo 120345,00 assim ? ou tenho outro solução ?


Responder

27/02/2003

Fred

se vc precisar transformar para float para fazer algum calculo ´nao use ponto(.)´

Float não aceita ponto(.)


Responder

27/02/2003

Jose Bonardi

ACHEI BACANA A PALAVRA DE ´NAUM´, ´ENTAUM´, RI TANTO.....


bom alguns falaram que o Delphi naum trabalha com (.) ponto ok, outros falaram para usar o DecimalSeparator , naum deu certo ,,,,, o que fazer entaum, naum digito o (.) ponto, entaum como fica um valor tipo 120345,00 assim ? ou tenho outro solução ?



Responder

27/02/2003

Anonymous

queria apenas deixar escrito aqui algo para nosso amigo Jose Ricardo ,pois o comentário que ele fez lá embaixo é meio estranho , provavelmente é de alguém novato no mundo da programação ou da NET quem sabe , no minimo naum deve usar IRC ou coisa do tipo ...... pq senuam taria acostumado a esta linguagem heheheh , bom vivendo e aprendendo um dia ele aprende , t+ José .......


Responder

27/02/2003

Lfernandos

E ai blz Dragon,

Eu concordo com o que os colegas escreveram acima.
Usar decimalseparator, digitar sem pontos, etc.
Acho que estas duas rotinas irá ajudar vc.

//Esta só aceita números, vírgula e Backspace
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in [´0´..´9´,´,´,#8]) then
Abort;
end;

//Ao perder o foco o texto do edit é formatado
procedure TForm1.Edit1Exit(Sender: TObject);
begin
Edit1.Text := FormatFloat(´,,0.00´,StrtoFloat(Edit1.Text));
end;

Severnini


Responder

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

Aceitar