Untitled
unknown
javascript
a year ago
3.4 kB
2
Indexable
// Taxas de juros anuais para cada banco const taxasJurosAnuais = { "Banco do Brasil": 31.58, "Itau": 22.48, "Caixa": 16.17, "Santander": 26.00, "Nubank": 2.00 }; function formatarParaReal(element) { let valor = element.value.replace(/\D/g, ''); valor = (valor / 100).toFixed(2) + ''; valor = valor.replace('.', ','); valor = valor.replace(/(\d)(?=(\d{3})+\,)/g, '$1.'); element.value = valor; } function atualizarEntrada() { const campoValorImovel = document.getElementById('valor-imovel'); let valorImovel = parseFloat(campoValorImovel.value.replace(/\./g, '').replace(',', '.')); if (!isNaN(valorImovel)) { const entradaMinima = valorImovel * 0.3; const entradaCampo = document.getElementById('entrada'); entradaCampo.value = entradaMinima.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } } function selecionarBanco(banco) { const taxaJurosCampo = document.getElementById('taxa-juros'); if (banco in taxasJurosAnuais) { taxaJurosCampo.value = taxasJurosAnuais[banco]; } else { taxaJurosCampo.value = ''; } } function calcular(event) { event.preventDefault(); const form = document.querySelector('.needs-validation'); if (!form.checkValidity()) { event.stopPropagation(); form.classList.add('was-validated'); return; } const valorImovel = parseFloat(document.getElementById('valor-imovel').value.replace(/\./g, '').replace(',', '.')); const entrada = parseFloat(document.getElementById('entrada').value.replace(/\./g, '').replace(',', '.')); const taxaJurosAnual = parseFloat(document.getElementById('taxa-juros').value) / 100; const prazo = parseInt(document.getElementById('prazo').value); if (entrada < valorImovel * 0.3) { document.getElementById('entrada').setCustomValidity('A entrada não pode ser menor do que 30% do valor do imóvel.'); document.getElementById('entrada').reportValidity(); return; } else { document.getElementById('entrada').setCustomValidity(''); } // Converter taxa de juros anual para mensal const taxaJurosMensal = Math.pow(1 + taxaJurosAnual, 1 / 12) - 1; const valorFinanciado = valorImovel - entrada; let resultado = ''; // Cálculo pelo método PRICE const prestacaoPrice = (valorFinanciado * taxaJurosMensal) / (1 - Math.pow((1 + taxaJurosMensal), -prazo)); resultado += `<p>Prestação Mensal (PRICE): R$ ${prestacaoPrice.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</p>`; // Cálculo pelo método SAC const amortizacao = valorFinanciado / prazo; let totalPago = 0; for (let i = 0; i < prazo; i++) { const juros = (valorFinanciado - (i * amortizacao)) * taxaJurosMensal; totalPago += (amortizacao + juros); } resultado += `<p>Prestação Mensal Média (SAC): R$ ${(totalPago / prazo).toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}</p>`; document.getElementById('resultado').innerHTML = resultado; } document.querySelectorAll('input[type="text"], input[type="number"]').forEach((input) => { input.addEventListener('input', (event) => { event.target.value = event.target.value.replace(/[^\d.,]/g, ''); }); }); document.querySelector('.needs-validation').addEventListener('submit', calcular);
Editor is loading...
Leave a Comment