restructuredtext .. mathematical_methods:
Métodos Matemáticos
Esses métodos são funções incorporadas ao JavaScript que
realizam operações matemáticas em números.
Todos os métodos matemáticos são acessados através de Math.
Ver também
Constantes Matemáticas
Math.PI
A constante Math.PI representa o valor de π (pi), aproximadamente 3.14159265358979.
É comumente usada em cálculos envolvendo círculos e ângulos.
Valor
Aproximadamente 3.141592653589793
Exemplos
// Calcular a circunferência de um círculo (C = 2πr)
raio = 10;
2 * Math.PI * raio;
// 62.83185307179586
// Calcular a área de um círculo (A = πr²)
raio = 5;
Math.PI * Math.pow(raio, 2);
// 78.53981633974483
// Converter graus para radianos (radianos = graus × π/180)
graus = 180;
graus * (Math.PI / 180);
// 3.141592653589793 (equivalente a 180° = π radianos)
graus = 90;
graus * (Math.PI / 180);
// 1.5707963267948966 (equivalente a 90° = π/2 radianos)
Math.E
A constante de Euler (e), base dos logaritmos naturais. É fundamental em
cálculos de crescimento exponencial, juros compostos e probabilidade.
Valor
Aproximadamente 2.718281828459045
Exemplos
Math.E;
// 2.718281828459045
// Usado em cálculos de crescimento exponencial
// Exemplo: crescimento populacional onde taxa = 0.05 (5%) e tempo = 10 anos
populacaoInicial = 1000;
taxa = 0.05;
tempo = 10;
populacaoInicial * Math.pow(Math.E, taxa * tempo);
// 1648.72 (aproximadamente)
Math.LN2
Logaritmo natural de 2 (ln 2). Útil em cálculos de meia-vida e tempo de duplicação.
Valor
Aproximadamente 0.6931471805599453
Exemplos
Math.LN2;
// 0.6931471805599453
// Calcular tempo de duplicação: t = ln(2) / taxa_crescimento
taxaCrescimento = 0.07; // 7% ao ano
Math.LN2 / taxaCrescimento;
// 9.90 anos (regra de 70)
Math.LN10
Logaritmo natural de 10 (ln 10). Usado para converter entre logaritmos de bases diferentes.
Valor
Aproximadamente 2.302585092994046
Exemplos
Math.LN10;
// 2.302585092994046
Math.LOG2E
Logaritmo de base 2 de e (log₂ e). Útil em ciência da computação e teoria da informação.
Valor
Aproximadamente 1.4426950408889634
Exemplos
Math.LOG2E;
// 1.4426950408889634
Math.LOG10E
Logaritmo de base 10 de e (log₁₀ e). Usado em cálculos científicos e conversões.
Valor
Aproximadamente 0.4342944819032518
Exemplos
Math.LOG10E;
// 0.4342944819032518
Operações com Valores
Math.abs()
Retorna o valor absoluto de um número, ou seja, sua magnitude sem considerar o sinal. O valor absoluto é sempre não-negativo e representa a distância do número até zero.
Sintaxe
Math.abs(x)
Parâmetros
xUm número.
Valor de retorno
O valor absoluto do número fornecido (sempre ≥ 0).
Exemplos
Math.abs(-5); // 5
Math.abs(5); // 5
Math.abs(0); // 0
Math.abs(-3.14); // 3.14
// Calcular diferença absoluta entre dois valores
valor1 = 10;
valor2 = 3;
Math.abs(valor1 - valor2); // 7
valor1 = 3;
valor2 = 10;
Math.abs(valor1 - valor2); // 7 (mesmo resultado)
// Calcular variação de temperatura
temperaturaInicial = 15;
temperaturaFinal = -5;
Math.abs(temperaturaFinal - temperaturaInicial);
// 20 graus de variação
Arredondamento de Números
Math.round()
Arredonda um número para o inteiro mais próximo usando a regra matemática padrão: se a parte decimal for menor que 0.5, arredonda para baixo; se for maior ou igual a 0.5, arredonda para cima.
Sintaxe
Math.round(x)
Parâmetros
xUm número.
Valor de retorno
O número arredondado para o inteiro mais próximo.
Exemplos
Math.round(4.7); // 5 (0.7 ≥ 0.5, arredonda para cima)
Math.round(4.4); // 4 (0.4 < 0.5, arredonda para baixo)
Math.round(4.5); // 5 (0.5 = 0.5, arredonda para cima)
Math.round(-4.5); // -4 (arredonda em direção a zero)
Math.round(-4.6); // -5
// Arredondar preço para duas casas decimais
preco = 19.876;
Math.round(preco * 100) / 100; // 19.88
// Arredondar para uma casa decimal
valor = 3.14159;
Math.round(valor * 10) / 10; // 3.1
Math.floor()
Arredonda um número para baixo, retornando o maior inteiro que seja menor ou igual ao número fornecido. Sempre arredonda em direção ao infinito negativo.
Sintaxe
Math.floor(x)
Parâmetros
xUm número.
Valor de retorno
O maior inteiro ≤ x.
Exemplos
Math.floor(4.9); // 4 (remove a parte decimal)
Math.floor(4.1); // 4
Math.floor(4.0); // 4
Math.floor(-4.1); // -5 (vai para o próximo inteiro menor)
Math.floor(-4.9); // -5
// Obter apenas a parte inteira de um número positivo
Math.floor(10.999); // 10
// Calcular quantos grupos completos de 10 cabem em um número
total = 47;
Math.floor(total / 10); // 4 grupos de 10
// Converter porcentagem para índice de array
porcentagem = 75;
tamanhoArray = 100;
Math.floor((porcentagem / 100) * tamanhoArray); // 75
Math.ceil()
Arredonda um número para cima, retornando o menor inteiro que seja maior ou igual ao número fornecido. Sempre arredonda em direção ao infinito positivo.
Sintaxe
Math.ceil(x)
Parâmetros
xUm número.
Valor de retorno
O menor inteiro ≥ x.
Exemplos
Math.ceil(4.1); // 5 (arredonda para cima)
Math.ceil(4.9); // 5
Math.ceil(4.0); // 4
Math.ceil(-4.1); // -4 (vai para o próximo inteiro maior)
Math.ceil(-4.9); // -4
// Calcular número mínimo de páginas necessárias
totalItens = 25;
itensPorPagina = 10;
Math.ceil(totalItens / itensPorPagina); // 3 páginas
totalItens = 30;
itensPorPagina = 10;
Math.ceil(totalItens / itensPorPagina); // 3 páginas
// Calcular número de caixas necessárias
totalProdutos = 47;
produtosPorCaixa = 12;
Math.ceil(totalProdutos / produtosPorCaixa); // 4 caixas
Math.trunc()
Remove a parte decimal de um número, mantendo apenas a parte inteira. Diferente de
floor() e ceil(), simplesmente “corta” os dígitos após o ponto decimal sem
arredondar, sempre movendo em direção a zero.
Sintaxe
Math.trunc(x)
Parâmetros
xUm número.
Valor de retorno
A parte inteira de x (sem casas decimais).
Exemplos
Math.trunc(4.9); // 4 (remove .9)
Math.trunc(4.1); // 4 (remove .1)
Math.trunc(-4.9); // -4 (remove .9, move para zero)
Math.trunc(-4.1); // -4 (remove .1, move para zero)
// Comparação entre trunc e floor com números negativos
Math.trunc(-4.7); // -4 (remove decimal)
Math.floor(-4.7); // -5 (arredonda para baixo)
// Separar parte inteira de um número
numero = 123.456;
parteInteira = Math.trunc(numero); // 123
parteDecimal = numero - parteInteira; // 0.456
Operações de Potenciação e Raízes
Math.pow()
Calcula a potência de um número, elevando a base ao expoente (baseexpoente). Esta operação multiplica a base por ela mesma o número de vezes indicado pelo expoente.
Sintaxe
Math.pow(base, expoente)
Parâmetros
baseO número da base.
expoenteO expoente usado para elevar a base.
Valor de retorno
A base elevada à potência do expoente.
Exemplos
// Potências simples (multiplicação repetida)
Math.pow(7, 2); // 49 (7 × 7)
Math.pow(7, 3); // 343 (7 × 7 × 7)
Math.pow(2, 10); // 1024 (2¹⁰, útil em computação)
// Expoentes fracionários calculam raízes
Math.pow(4, 0.5); // 2 (raiz quadrada: 4^(1/2) = √4)
Math.pow(8, 1/3); // 2 (raiz cúbica: 8^(1/3) = ∛8)
Math.pow(27, 1/3); // 3 (raiz cúbica: 27^(1/3) = ∛27)
// Expoentes negativos calculam divisões
Math.pow(2, -1); // 0.5 (2⁻¹ = 1/2)
Math.pow(10, -2); // 0.01 (10⁻² = 1/100)
// Cálculo de juros compostos: M = C × (1 + i)^t
capital = 1000;
taxa = 0.05; // 5%
tempo = 3; // 3 anos
capital * Math.pow(1 + taxa, tempo); // 1157.63
Nota
Você também pode usar o operador de exponenciação ** como alternativa:
2 ** 3 é equivalente a Math.pow(2, 3)
Math.sqrt()
Calcula a raiz quadrada de um número, ou seja, encontra o número que multiplicado por ele mesmo resulta no valor fornecido (√x = y, onde y² = x).
Sintaxe
Math.sqrt(x)
Parâmetros
xUm número maior ou igual a zero.
Valor de retorno
A raiz quadrada do número fornecido.
Atenção
Retorna NaN se o número for negativo (não há raiz quadrada real de números negativos).
Exemplos
Math.sqrt(9); // 3 (3 × 3 = 9)
Math.sqrt(16); // 4 (4 × 4 = 16)
Math.sqrt(2); // 1.414... (√2 é irracional)
Math.sqrt(0); // 0
Math.sqrt(-1); // NaN (número negativo)
// Calcular lado de um quadrado conhecendo a área
area = 25;
Math.sqrt(area); // 5 metros de lado
// Calcular hipotenusa (Teorema de Pitágoras: c = √(a² + b²))
cateto1 = 3;
cateto2 = 4;
Math.sqrt(Math.pow(cateto1, 2) + Math.pow(cateto2, 2)); // 5
Math.cbrt()
Calcula a raiz cúbica de um número, ou seja, encontra o número que multiplicado por ele mesmo três vezes resulta no valor fornecido (∛x = y, onde y³ = x).
Sintaxe
Math.cbrt(x)
Parâmetros
xUm número (pode ser negativo).
Valor de retorno
A raiz cúbica do número fornecido.
Exemplos
Math.cbrt(8); // 2 (2 × 2 × 2 = 8)
Math.cbrt(27); // 3 (3 × 3 × 3 = 27)
Math.cbrt(-8); // -2 (raiz cúbica de negativo é válida)
Math.cbrt(0); // 0
// Calcular aresta de um cubo conhecendo o volume
volume = 64;
Math.cbrt(volume); // 4 metros de aresta
Math.hypot()
Calcula a hipotenusa ou distância euclidiana usando o Teorema de Pitágoras. Retorna √(a² + b²) sem risco de overflow ou underflow em cálculos intermediários.
Sintaxe
Math.hypot(valor1, valor2)
Parâmetros
valor1, valor2Números dos quais calcular a hipotenusa.
Valor de retorno
A raiz quadrada da soma dos quadrados (√(valor1² + valor2²)).
Atenção
Retorna NaN se algum argumento não puder ser convertido para número.
Exemplos
// Teorema de Pitágoras: triângulo com catetos 3 e 4
Math.hypot(3, 4);
// 5 (hipotenusa = √(3² + 4²) = √(9 + 16) = √25 = 5)
// Calcular distância entre dois pontos no plano cartesiano
// Fórmula: d = √((x2-x1)² + (y2-y1)²)
x1 = 0, y1 = 0;
x2 = 3, y2 = 4;
Math.hypot(x2 - x1, y2 - y1);
// 5 (distância do ponto (0,0) ao ponto (3,4))
// Distância entre dois pontos quaisquer
pontoA_x = 1, pontoA_y = 2;
pontoB_x = 4, pontoB_y = 6;
Math.hypot(pontoB_x - pontoA_x, pontoB_y - pontoA_y);
// 5 (distância entre os pontos)
Funções Trigonométricas
Math.sin()
Calcula o seno de um ângulo em radianos. O seno representa a razão entre o cateto oposto e a hipotenusa em um triângulo retângulo, variando entre -1 e 1.
Sintaxe
Math.sin(x)
Parâmetros
xUm ângulo em radianos.
Valor de retorno
O seno do ângulo (valor entre -1 e 1).
Exemplos
Math.sin(0); // 0 (sen 0° = 0)
Math.sin(Math.PI / 2); // 1 (sen 90° = 1)
Math.sin(Math.PI); // 0 (sen 180° ≈ 0)
Math.sin(Math.PI * 3/2); // -1 (sen 270° = -1)
// Trabalhar com graus (converter para radianos primeiro)
graus = 90;
Math.sin(graus * Math.PI / 180); // 1
graus = 30;
Math.sin(graus * Math.PI / 180); // 0.5 (sen 30° = 1/2)
// Calcular altura de um objeto usando ângulo de elevação
distancia = 100; // metros
anguloGraus = 30;
anguloRadianos = anguloGraus * Math.PI / 180;
altura = distancia * Math.sin(anguloRadianos); // 50 metros
Math.cos()
Calcula o cosseno de um ângulo em radianos. O cosseno representa a razão entre o cateto adjacente e a hipotenusa em um triângulo retângulo, variando entre -1 e 1.
Sintaxe
Math.cos(x)
Parâmetros
xUm ângulo em radianos.
Valor de retorno
O cosseno do ângulo (valor entre -1 e 1).
Exemplos
Math.cos(0); // 1 (cos 0° = 1)
Math.cos(Math.PI / 2); // 0 (cos 90° ≈ 0)
Math.cos(Math.PI); // -1 (cos 180° = -1)
Math.cos(Math.PI * 3/2); // 0 (cos 270° ≈ 0)
// Trabalhar com graus
graus = 60;
Math.cos(graus * Math.PI / 180); // 0.5 (cos 60° = 1/2)
// Calcular posição em movimento circular
// x = raio × cos(ângulo), y = raio × sin(ângulo)
raio = 10;
angulo = Math.PI / 4; // 45°
posicaoX = raio * Math.cos(angulo); // 7.07...
posicaoY = raio * Math.sin(angulo); // 7.07...
Math.tan()
Calcula a tangente de um ângulo em radianos. A tangente é a razão entre o seno e o cosseno (tan θ = sen θ / cos θ), ou a razão entre cateto oposto e adjacente.
Sintaxe
Math.tan(x)
Parâmetros
xUm ângulo em radianos.
Valor de retorno
A tangente do ângulo.
Exemplos
Math.tan(0); // 0 (tan 0° = 0)
Math.tan(Math.PI / 4); // 1 (tan 45° = 1)
Math.tan(Math.PI / 2); // Infinity (tan 90° = ∞, indefinido)
// Calcular inclinação/declive
graus = 45;
Math.tan(graus * Math.PI / 180); // 1 (inclinação de 45°)
// Calcular altura usando ângulo e distância horizontal
distanciaHorizontal = 50;
anguloGraus = 30;
anguloRadianos = anguloGraus * Math.PI / 180;
altura = distanciaHorizontal * Math.tan(anguloRadianos); // 28.87 metros
Logaritmos e Exponenciais
Math.exp()
Calcula e elevado à potência de um número (ex), onde e é a constante de Euler (≈ 2.718). Esta é a função exponencial natural, fundamental em cálculos de crescimento contínuo.
Sintaxe
Math.exp(x)
Parâmetros
xUm número (o expoente).
Valor de retorno
ex (e elevado a x).
Exemplos
Math.exp(0); // 1 (e⁰ = 1, qualquer número elevado a 0 é 1)
Math.exp(1); // 2.718... (e¹ = e)
Math.exp(2); // 7.389... (e²)
Math.exp(-1); // 0.368... (e⁻¹ = 1/e)
// Crescimento exponencial contínuo: P(t) = P₀ × e^(rt)
populacaoInicial = 1000;
taxa = 0.03; // 3% ao ano (crescimento contínuo)
anos = 10;
populacaoFinal = populacaoInicial * Math.exp(taxa * anos);
// 1349.86 (crescimento de ~35% em 10 anos)
Math.log()
Calcula o logaritmo natural (base e) de um número. É a operação inversa de
Math.exp(): se ey = x, então ln(x) = y.
Sintaxe
Math.log(x)
Parâmetros
xUm número maior que zero.
Valor de retorno
O logaritmo natural de x (ln x).
Atenção
Retorna -Infinity para 0 e NaN para números negativos.
Exemplos
Math.log(1); // 0 (ln 1 = 0, pois e⁰ = 1)
Math.log(Math.E); // 1 (ln e = 1, pois e¹ = e)
Math.log(10); // 2.303... (ln 10)
Math.log(0); // -Infinity
Math.log(-5); // NaN
// Calcular tempo para duplicar (regra de 70)
// t = ln(2) / taxa
taxaCrescimento = 0.07; // 7% ao ano
Math.log(2) / taxaCrescimento; // 9.90 anos
// Calcular taxa de crescimento a partir de dois valores
valorInicial = 100;
valorFinal = 150;
anos = 5;
taxaCrescimento = Math.log(valorFinal / valorInicial) / anos;
// 0.0811 (8.11% ao ano)
Math.log2()
Calcula o logaritmo de base 2 de um número. Responde à pergunta: “2 elevado a que potência resulta em x?” Muito usado em ciência da computação.
Sintaxe
Math.log2(x)
Parâmetros
xUm número maior que zero.
Valor de retorno
O logaritmo de base 2 de x (log₂ x).
Exemplos
Math.log2(2); // 1 (2¹ = 2)
Math.log2(4); // 2 (2² = 4)
Math.log2(8); // 3 (2³ = 8)
Math.log2(1024); // 10 (2¹⁰ = 1024)
// Calcular quantos bits são necessários para representar um número
valorMaximo = 255;
Math.ceil(Math.log2(valorMaximo + 1)); // 8 bits
// Determinar profundidade de uma árvore binária completa
totalNos = 127;
Math.floor(Math.log2(totalNos + 1)); // 7 níveis
Math.log10()
Calcula o logaritmo de base 10 de um número (logaritmo decimal). Responde à pergunta: “10 elevado a que potência resulta em x?” Útil em escalas logarítmicas.
Sintaxe
Math.log10(x)
Parâmetros
xUm número maior que zero.
Valor de retorno
O logaritmo de base 10 de x (log₁₀ x).
Exemplos
Math.log10(10); // 1 (10¹ = 10)
Math.log10(100); // 2 (10² = 100)
Math.log10(1000); // 3 (10³ = 1000)
Math.log10(2); // 0.301... (10^0.301 ≈ 2)
// Calcular número de dígitos de um inteiro positivo
numero = 12345;
Math.floor(Math.log10(numero)) + 1; // 5 dígitos
// Calcular magnitude de um terremoto (escala Richter)
amplitude = 1000;
Math.log10(amplitude); // 3.0 (magnitude)