StrFloat só para os FERAS mesmo

Delphi

27/02/2003

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

Curtidas 0

Respostas

Louzada

Louzada

27/02/2003

Você deve formatar cas casas decimais antes:

DecimalSeparator:= ´,´;


GOSTEI 0
Anonymous

Anonymous

27/02/2003

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


GOSTEI 0
Michael

Michael

27/02/2003

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


GOSTEI 0
Anonymous

Anonymous

27/02/2003

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 .....



GOSTEI 0
Anonymous

Anonymous

27/02/2003

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 ?


GOSTEI 0
Fred

Fred

27/02/2003

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

Float não aceita ponto(.)


GOSTEI 0
Jose Bonardi

Jose Bonardi

27/02/2003

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 ?



GOSTEI 0
Anonymous

Anonymous

27/02/2003

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é .......


GOSTEI 0
Lfernandos

Lfernandos

27/02/2003

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


GOSTEI 0
POSTAR