StrFloat só para os FERAS mesmo
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 .....
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
Curtidas 0
Respostas
Louzada
27/02/2003
Você deve formatar cas casas decimais antes:
DecimalSeparator:= ´,´;
DecimalSeparator:= ´,´;
GOSTEI 0
Anonymous
27/02/2003
como assim formatar as casas decimais antes ? pode me explicar ?
GOSTEI 0
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
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
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.
É 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
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 ?
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
27/02/2003
se vc precisar transformar para float para fazer algum calculo ´nao use ponto(.)´
Float não aceita ponto(.)
Float não aceita ponto(.)
GOSTEI 0
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
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
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
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