Converter Float para integer

Delphi

20/12/2004

Tentei já de 2 maneiras não tá dando certo

Var
TotX : Integer;

TotX := int(ToX /100);
ProgressBar1.Position := TotX;


Var
TotX : Real;

TotX := TotX /100;
ProgressBar1.Position := FloatToInt(TotX);


Incompatible Types, pq?


Wgm8

Wgm8

Curtidas 0

Melhor post

Rômulo Barros

Rômulo Barros

20/12/2004

isso e logica basica..... eu acho legal vc dar uma olhada em um livro de algoritmos.


:arrow: [color=red:ea4f20a965][b:ea4f20a965]E eu acho legal você dá uma OLHADINHA nas [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689&sid=4ef9917a1e0af1dbf348b1c225f50f25]Regras de Conduta [/url]do fórum, Razor. [/b:ea4f20a965][/color:ea4f20a965] :lol:


GOSTEI 1

Mais Respostas

Massuda

Massuda

20/12/2004

Use [b:a4d999df18]Trunc[/b:a4d999df18] para truncar o valor ou [b:a4d999df18]Round[/b:a4d999df18] para arredondar o valor.


GOSTEI 0
Razor

Razor

20/12/2004

putz......

isso e logica basica..... eu acho legal vc dar uma olhada em um livro de algoritmos.


GOSTEI 0
Claudio

Claudio

20/12/2004

Tentei já de 2 maneiras não tá dando certo

Var
TotX : Integer;

TotX := int(ToX /100);
ProgressBar1.Position := TotX;


Var
TotX : Real;

TotX := TotX /100;
ProgressBar1.Position := FloatToInt(TotX);


Incompatible Types, pq?




var valor: real;
result: integer;
begin
valor := 147.89;

// separando a parte inteira: resultado 147
result := trunc(valor);

// separando a parte fracionária:
// multiplicar por 100 obtem as duas primeiras casas decimais
// resultado 89
result := round(frac(valor) * 100);
end;
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

20/12/2004

Qual a versão do Delphi?

Porque a propriedade Position da minha ProgressBar recebe um TPosition e não um numero.

De qualquer forma, porque você quer fazer a atribuição desta forma?

Para usar o ProgressBar basta você atribuir o total de iterações em MAX, e cada iteração em VALUE. Não há necessidade de fazer qualquer cálculo.

Algo assim:
nTotRec := cdsPedidos.RecordCount;
ProgressBar1.Max := nTotRec;
cdsPedidos.First;

for i := 1 to nTotRec
begin
  ProgressBar1.Value := i;
  // seu código a partir daqui
  cdsPedidos.Next;
end;

ou assim:
nTotRec := cdsPedidos.RecordCount;
ProgressBar1.Max := nTotRec;
cdsPedidos.First;

while not cdsPedidos.Eof
begin
  inc(i);
  ProgressBar1.Value := i;
  // seu código a partir daqui
  cdsPedidos.Next;
end;

Você pode optar pelo gauge, que tem um método AddProgress e você não precisa de uma variável para controlar o progresso.

GOSTEI 0
POSTAR