3
respostas

Problemas dos 100 / 3

Opa boa tarde, ontem falando com o meu professor de DELPHI mostrando um sistema que to fazendo para adquirir conhecimento mostrei a tela de venda para ele, e ele fazer eu parcelar uma conta com valor de 100 reais e dividir por 3, ai deu tudo as parcelas do valor 33.33333 algo assim, e pensando assim, tá errado mesmo a minha conta, ele me sugeriu para arrendodar a 1 ou a ultima parcela, mais como? Nunca fiz isso. Alguém sabe?

3 respostas

Olá Alisson,

A sua conta está certa, porém o convencional é exibir com apenas duas casas decimais você pode fazer isso utilizando o código abaixo:

String resultado = String.format("%.2f", valor);

Denis o problema não é mostrar os campos decimais e sim arrendodar a primeira ou a aultima parcela.

Olá Alisson,

Acho que a melhor abordagem para esse caso seria truncar o 33.333333 na segunda casa decimal, resultando em parcelas de 33.33. A última parcela, ou a primeira, você calcularia em separado. Se você tivesse pago 2 parcelas de 33.33, quanto faltaria pagar? 100 - (2 * 33.33), que resultaria em 33.34.

De forma genérica, ficaria assim:

// Calcula o valor da parcela normalmente (33.3333333)
valorParcela := total / quantidadeParcelas;
// Trunca o valor da parcela em duas casas decimais (33.33)
valorParcela := Trunc(valorParcela * 100) / 100;
// Calcula o valor da última parcela
valorUltimaParcela = total - ((quantidadeParcelas - 1) * valorParcela);

Espero ter ajudado.