Fórum Decimais me dando dor de cabeça. (rs rs rs) #335178

24/12/2006

0

Boa tarde amigos,


Tenho um probleminha e espero contar com a ajuda de vcs. Tenho alguns campos numéricos que são utilizados entre si num cálculo. Acontece que o

resultado, embora não mostre, registra vários decimais, como por exemplo: 40,00 * 20¬ = 48,00 dividido em 7 parcelas resulta em

6,8571428571428571428571428571429. No campo resultado é exibido o valor 6,86, porém, para um outro cálculo utilizando este valor será

considerado todos os decimais (0,8571428571428571428571428571429) e não somente o (0,86).

A pergunta é como utilizar somente o que está sendo exibido?

Certo da atenção de todos vcs, agradeço desde já.


Pro-luck

Pro-luck

Responder

Posts

26/12/2006

Lucas Silva

tenta usar o [b:c52a2b8241]formatfloat[/b:c52a2b8241]


Responder

Gostei + 0

27/12/2006

Tnaires

Olá
Você pode cortar o mal pela raiz, dividindo as parcelas do seguinte modo.

Usando a seguinte convenção:
T = valor total a ser dividido;
n = número total de parcelas;
p = valor da parcela = T / n

O que eu faço é: gero (n - 1) parcelas do valor arredondado de p.
E o valor da última parcela será T - [p * (n - 1)]

Usando o seu exemplo, teríamos:
T = 48,00
n = 7 parcelas
p = 48,00 / 7 = 6,8571428571428571428571428571429
Arredondando: p = 6,86 ( pode usar a função RoundTo pra fazer isso ).
Calculando o valor da última parcela ( 7ª, neste exemplo ): 48,00 - [6,86 * (7 - 1)] = 48,00 - 41,16 = 6,84

Ou seja, teríamos 6 parcelas de 6,86, e a última de 6,84. Bem melhor do que gravar no banco 7 parcelas de 6,8571428571428571428571428571429.

Isso evita que você tenha que lidar com números quebrados, e não altera o valor total a ser pago.

Abraços.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar