Tentei criar uma calculadora de percentual de retorno real de investimentos, mas não funcionou... já revisei e comparei com outros códigos aqui mas não encontro o erro...
Tentei criar uma calculadora de percentual de retorno real de investimentos, mas não funcionou... já revisei e comparei com outros códigos aqui mas não encontro o erro...
Lembrando que na formula os valores das taxas precisam estar no formato decimal (20% tem que colocar 0,20), então quando pegar o valor do usuário pelo prompt eu já fiz a divisão por 100.
// Formula juros reais
// (1 + nominal) = (1 + real) × (1 + inflação).
//
// Isolando o real
// (1 + real) = ( (1 + nominal) / (1 + inflação) )
//
// Aqui esta o erro vc esqueceu do numero 1 que soma com o real.
// 1 + real = (1+nominal) / (1+inflaçao)
//
// É só passar o 1 subtraindo.
// juros reais = ( (1+nominal) / (1+inflaçao) ) - 1
//
// Então a formula no script ficaria assim:
// return ( (taxa Nominal) / (inflação) )-1
E só mais uma coisa, não se esqueça do comando meta charset no inicio do programa.
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br><br>");
}
function mostrar(texto){
document.write(texto);
pulaLinha();
}
function taxaReal (taxaJurosNominal, percentualInflação){
return ((1+taxaJurosNominal)/(1+percentualInflação))-1;
}
var nominal=(parseFloat(prompt("Informe o juros nominal")))/100;
var inflacao=(parseFloat(prompt("Informe a inflação prevista no periodo")))/100;
var calculo=taxaReal(nominal, inflacao);
mostrar("O percentual de retorno real do seu investimento é "+Math.round(calculo*100*100)/100+"%")
</script>
[https://clubedospoupadores.com/calcular-taxa-de-juro-real](Link de referência)
Guilherme, agradeço demais. Sou totalmente iniciante, mesmo! Sem querer abusar mas já abusando, gostaria de entender por que é necessário transformar a fórmula original 1+taxaJurosNominal / 1+ percentual de inflação para se chegar a essa ((1+taxaJurosNominal) / (1+percentualInflação))-1. E por que é necessário repetir a multiplicação por 100 aqui (calculo100100)/100+"%"). Entendi já pq é necessário dividir por 100, mas não entendi as multiplicações. Muito obrigada!
Oi Soraia, tudo bem? Então, a formula para se descobrir taxas reais não é a que vc tinha colocado. Esse aqui seria a formula correta:
( 1+nominal) / (1+inflação);
Então vc pega esse resultado e subtrai "1", para chegar a taxa real, no fim fica no formato que coloquei:
o resultado de ( (1+nominal)/(1+inflação) ) menos 1
Então quando eu coloco essa formula direto na variável "calculo" acaba saindo um valor bem quebrado! Por ex, se eu colocar nominal = 20 e inflação =15 era pra dar 4,35% porem da isso aqui:
0.04347826086956519
Lembra que dividimos por 100 para transformar a porcentagem em decimal pra por na formula? Agora precisamos fazer o valor decimal voltar a ser uma porcentagem, então multiplicamos por 100. Essa já seria a porcentagem correta:
calculo*100 = 4.347826086956519
A partir daqui os cálculos são só para fazer o arredondamento correto para que ao invés de aparecer " 4.3478..." apareça "4.35%"
Arredondamento:calculo*100 = 4.3478
calculo*100*100= 434.78
Math.round(calculo*100*100)
// No nosso ex o 434.78 seria arredondado para = 435
// Então depois de chegar nos valores corretos so precisei dividir por 100 para retornar ao valor 4.35
Math.round(calculo*100*100)/100
muitíssimo obrigada, Guilherme!!! :-)
Guilherme beleza, como vc coloca o código sem "ativar" ele aqui?