Diferença entre ** e ^ em Javascript
- #JavaScript
No Desafio Cálculo de fórmula de juros compostos a fórmula apresentada no Desafio é:
Montante = Investimento Inicial * (1 + Taxa de Juros Mensal) ^ Período em Meses
Porém dessa forma o resultado apresentado não é o esperado para o Desafio.
O correto seria:
Montante = Investimento Inicial * (1 + Taxa de Juros Mensal) ** Período em Meses.
A diferença está na utilização do operador exponencial **:
O operador exponencial ** retorna o resultado da elevação do primeiro operando à potência do segundo operando. É equivalente a Math.pow(), exceto que também aceita BigInts como operandos.
Algumas linguagens de programação usam o símbolo circunflexo ^ para exponenciação, mas o JavaScript usa esse símbolo para o operador XOR bit a bit.
Por exemplo:
const result1 = 1.07 ^ 3; // 2.000000
const result3 = Number(1.07 ** 3); // 1.2250431889138477
const result2 = Math.pow(1.07, 3); // 1.2250431889138477