Fórum Como saber se é um numero #259033
18/11/2004
0
Alguém sabem me dizer como faço pra saber se um determinado valor gravado dentro de um string é um número?
Mitsalito
Curtir tópico
+ 0Post mais votado
18/11/2004
try
    StrToFloat( Valor );
    ShowMessage(´É numérico´);
except
    ShowMessage(´Não é numérico´);
end;
Emerson Nascimento
Gostei + 1
Mais Posts
18/11/2004
Weber
var Variavel: Shortstring; heNumero: Currency; lNumero: boolean; begin Try heNumero := StrToCurr(Trim(Variavel); lNumero := True; except lNumero := False; end; end;
Não testei mas acho que deve funcionar.
Gostei + 0
18/11/2004
Mitsalito
if (not(Valor[i] in [´0´ .. ´9´, #8])) then
begin
resultado := não numérico;
Gostei + 0
18/11/2004
Marco Salles
No meu entendimento, isto não e bem assim :cry:
1) Voce tem que varrer a String Valor :idea:
2) o [b:44e061f87d]decimal Separador [/b:44e061f87d]na sua rotina nao esta incluido :cry:
quer dizer que [b:44e061f87d]10,00 não e um número?????[/b:44e061f87d] :?: :?: :?:
Gostei + 0
19/11/2004
Weber
A melhor forma é essa, a prova de falhas.
Gostei + 0
19/11/2004
Mitsalito
Gostei + 0
19/11/2004
Paulo_amorim
A melhor forma é essa, a prova de falhas.[/quote:343e452cee]
Olá
Na realidade, há casos em que o bloco try..except falha, não sei o motivo... já ouvi várias recomendações de que se faça o teste caracter por caracter como o Mitsalito mandou.
Com um detalhe: incluir DecimalSeparator e ThousandSeparator
AtÉ+
Gostei + 0
19/11/2004
Massuda
Gostei + 0
19/11/2004
Marco Salles
Tb acho que nao e assim :cry:
Se o [b:dff3edc143]Decimal Separador[/b:dff3edc143] Escolhido No [b:dff3edc143]S.O[/b:dff3edc143] For Um Ponto No Lugar Da Virgula voce nao terá exito...
Acho que é assim :
function Verificar(Valor:String):Boolean; var i:Integer; begin result:=True; for i:=1 to Length(valor) do begin if (not(valor[i] in [´0´ .. ´9´,DecimalSeparator])) then begin result :=false; exit; end; end; end;
Gostei + 0
19/11/2004
Thomaz_prg
var
v:Real
IF TryStrToFloat( edit1.text , v )
showmessage(´É um número´)
ELSE
Showmessage(´Não é um número´);
Gostei + 0
19/11/2004
José Henrique
function StrToIntDef(const S: string; Default: Integer): Integer;
que retorna o Default caso S não seja integer.
var Number: Integer; begin Number := StrToIntDef(Edit1.Text, 0); if Number = 0 then // é número inteiro else // não é end;
Henrique.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)