public decimal CalculoMensalDePagamento(
            ValorEmprestimo valor,
            decimal taxaJurosAnual,
            PrazoEmprestimo prazoEmprestimo)
        {
            var monthly = (double)taxaJurosAnual / 100 / 12 * (double)valor.EmprestimoValor / (1 - Math.Pow(1 + ((double)taxaJurosAnual / 100 / 12), -prazoEmprestimo.TotalMeses()));

            return(new decimal(Math.Round(monthly, 2, MidpointRounding.AwayFromZero)));
        }
        public List <ComparacaoMensalDeEmprestimo> ComparacaoMensalDeReembolsos(PrazoEmprestimo prazoEmprestimo)
        {
            var calculo = new CalculoPagamentoEmprestimo();

            var comparador = new List <ComparacaoMensalDeEmprestimo>();

            foreach (var produto in _emprestimoProduto)
            {
                decimal reembolso =
                    calculo.CalculoMensalDePagamento(_valorEmprestimo, produto.ObterTaxaJuros(), prazoEmprestimo);
                comparador.Add(new ComparacaoMensalDeEmprestimo(produto.ObterNomeProduto(), produto.ObterTaxaJuros(), reembolso));
            }

            return(comparador);
        }