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 • Edited on

2 1

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!

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay