Fórum Como eu faço para redondar casas decimais #174524
12/08/2003
0
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
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
Curtir tópico
+ 0
Responder
Posts
12/08/2003
Okama
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.
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.
Responder
Gostei + 0
12/08/2003
Marcelo
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?
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?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)