Fórum Integer não aceita número grande e não pode aparecer pontos e letras! #592846
30/04/2018
0
Estou fazendo a seguinte função comentada para pegar o resultado de uma operação matemática( Com o número do CNPJ ), preciso pegar esse valor e somar pelo número da matrícula, o resultado não pode conter letras ou vírgulas, e pelo fato de o número ser muito grande o Integer não aceita, e o float o número aparece com letras e vírgulas, oque não pode acontecer... Segue print mostrando código....
Print: http://prntscr.com/jc1k7y ( A função que estou utilizando está comentada! );
Print: http://prntscr.com/jc1k7y ( A função que estou utilizando está comentada! );
Gilberto Moura
Curtir tópico
+ 0
Responder
Posts
03/05/2018
Venancio Alves
Olá Gil!
Já tentou utilizar o tipo Long?
Já tentou utilizar o tipo Long?
Responder
Gostei + 0
04/05/2018
Emerson Nascimento
você pode criar uma função que retorne apenas números:
depois, pode utilizá-la no seu código (podendo ainda reduzi-lo):
function SoNumeros( str: string );
var retorno : string;
i: integer;
begin
retorno := '';
For i := 1 to Lenght( str ) do
if (str[i] in ['0'..'9']) then retorno := concat(retorno, str[i]);
result := retorno;
end;
depois, pode utilizá-la no seu código (podendo ainda reduzi-lo):
x2 := SoNumeros( x2 ); // somente numeros x4 := ''; For i := 1 to Lenght( x2 ) do x4 := concat(x4, IntToStr( StrToInt( x2[i] ) * Math.IfThen(i < 10, i, i - 10) ) ) nsoma := StrToInt64( x4 ) + StrToInt64( trim( matricula.Text ) ); x4 := IntToStr( nsoma ) lblSerial.Caption := x4
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)