Como eu faço para redondar casas decimais

Delphi

12/08/2003

Galera eu tenho um valor , vou dar um exemplo:


12,23 Valor1
11,15 Valor2
7,50 Valor3
--------
30,88 ValorTotal
12,50 ValorSinal
--------
18.38 ValorSaldo

Agora eu quero dividir o valor do sinal para cada valor proporcional dos três valores acima ..

ai eu faço isso
30,88 dividido 12,50= 2,4704... agora eu pego esse 2,4704 e divido pelo primeiro valor ex:
12,23 dividido 2,4704 = 4,9506152
ai o Valor1 ia ficar assim
12,23 Valor menos 4,9506152= 7,279385 total do 1º valor..
depois faço isso com os outros dois valores ... isso dividi os valores certinho dos sinais para cada campo do valorSinal de cada valor
Meu problema é que qdo da valores quebrados some alguns centavos dos valores ... Minha pergunta é tem como fazer isso de outra forma .. ou tem alguma função do delphi que possa fazer o arredondamento dos valores sem perde nenhum centavo ...Obrigado


Bugbear

Bugbear

Curtidas 0

Respostas

Okama

Okama

12/08/2003

Dá pra arredondar usando o Round.
Ex. Round(10,5) = 10
Round(10,6) = 11;

RoundTo(1234567, 3)= 1234000
RoundTo(1.234, -2)= 1.23
RoundTo(1.235, -2)= 1.24
RoundTo(1.245, -2)= 1.24

O problema continua mesmo assim, te aconselho somar todas as parcelas e conferir com o total, pegar a diferença e adicionar/subtrair da ultima parcela.


GOSTEI 0
Marcelo

Marcelo

12/08/2003

Voce pode fazer assim tambem, que eu acho ser melhor...

formatfloat(´#0.00´, 5.213548);

Nesse caso você pode escolher o numero de casas! Aqui ficaria assim: 5,21! Se for o caso de casas exatas é so colocar assim:

formatfloat(´´, 5.213548);

Valeu?


GOSTEI 0
POSTAR