DEV Community

Cover image for Facilitando a matemática de seus códigos.
Thiago Pederzolli Machado da Silva
Thiago Pederzolli Machado da Silva

Posted on • Updated on

Facilitando a matemática de seus códigos.

Se você estuda linguagem de programação, principalmente nos estudos de lógica, muitos exercícios envolvem vários cálculos. Com certeza você já quebrou muito a cabeça tentando arredondar números, trabalhar com raiz quadrada, tentando entender como fazer exponenciação e muitas vezes fez um cálculo dentro de outro para resolver alguma dificuldade.

Mas hoje venho trazer para vocês um pequeno resumo de vários métodos que o objeto Math possui. Ele é uma ótima ferramenta, com vários métodos que podem facilitar muito suas operações matemáticas e trabalho com números em alguns casos:

Os primeiros que vou falar são as propriedades de arredondar, as principais são 3:

  • Math.ceil, que em tradução literal significa teto, então arredonda para cima.
  • Math.floor, que em tradução literal significa chão, então arredonda para baixo.
  • Math.round, que irá aplicar a regra de proximidade, de .1 a .4 arredonda para baixo e de .5 a .9 arredonda para cima.

imagem da sala dos Simpsons, escrito no teto Math.ceil(), Math.round(.5), Math.round(.6), Math.round(.7), Math.round(.8), Math.round(.9) e escrito no chão Math.floor(), Math.round(.1), Math.round(.2), Math.round(.3), Math.round(.4)

Depois temos outras funcionalidades para manipular números como:

  • Math.abs() retorna um número absoluto.
  • Math.sqrt() que retorna a raiz quadrada do número declarado como argumento.
  • Math.pow(n1, n2) que realiza exponenciação recebendo dois argumentos, o n1 é o número do cálculo e o n2 o número da exponenciação. Hoje em dia já temos um operador para isso que é o **.
  • Math.random() que retorna um número aleatório entre 0 e 1, logo basta multiplicar pelo valor máximo que terá seu alcance de números aleatórios.
  • Math.max() que retorna o maior número de uma lista de números.
  • Math.min() que retorna o menor número de uma lista de números.
Math.abs(-5.5); // 5.5

Math.sqrt(9); // 3

Math.pow(7, 2);    // 49
7 ** 2 // 49. Operador exponencial

Math.floor(Math.random() * 500);  // entre 0 e 500

Math.max(5,3,10,42,2); // 42

Math.min(5,3,10,42,2); // 2

Mas para manipular um número, precisamos saber se realmente estamos recebendo um número. Para isso temos algumas alternativas:

  • Number.isNaN() vai retornar true ou false se o elemento declarado é NaN: Not A Number.
  • Number.isInteger() vai retornar true ou false se o número é inteiro, ou seja, se não possui vírgula.
  • parseFloat() ou Number.parseFloat() percorrem uma string que comece com um número e para no primeiro sinal que não seja +, -, . ou se depois tiver um . ele irá parar em um 0 subsequente.
  • parseInt() ou Number.parseInt() percorrem uma string que comece com um número e para no primeiro sinal que não seja +, -, . ou se depois tiver um . ele irá parar em um 0 subsequente. O parseInt recebe um segundo argumento também, que é refere-se ao parâmetro base. É o sistema numérico matemático do valor do primeiro argumento. 10 é o valor para o sistema númerico decimal.
Number.isNaN(NaN); // true
Number.isNaN(4 + 5); // false

Number.isInteger(20); // true
Number.isInteger(23.6); // false

Number.parseFloat('99.50'); // 99.5
Number.parseFloat('100 Reais'); // 100
Number.parseFloat('R$ 100'); // NaN

parseInt('99.50', 10); // 99
parseInt(5.43434355555, 10); // 5
Number.parseInt('100 Reais', 10); // 100

Graças a esses métodos que minha vida lidando com números ficou muito mais fácil e espero que facilite a vida de vocês também!

Discussion (0)