Facilitando a matemática de seus códigos.
Published: 2020-10-27 16:19:27

<p>
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.
</p>
<p>
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:
</p>
<p>
Os primeiros que vou falar são as propriedades de arredondar, as principais são 3:
</p>
<ul>
<li>Math.ceil, que em tradução literal significa teto, então arredonda para cima.
</li>
<li>
Math.floor, que em tradução literal significa chão, então arredonda para baixo.
</li>
<li>
Math.round, que irá aplicar a regra de proximidade, de .1 a .4 arredonda para baixo e de .5 a .9 arredonda para cima.
</li>
</ul>
<img src="https://ik.imagekit.io/iseca49kdh/mathCeilFloorRound_BAl3hCC_g.jpg">
<figcaption> 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)</figcaption>

<p>
Depois temos outras funcionalidades para manipular números como:
</p>	
<ul>
<li>
Math.abs() retorna um número absoluto.
</li>
<li>
Math.sqrt() que retorna a raiz quadrada do número declarado como argumento.
</li>
<li>
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 **.
</li>
<li>
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.
</li>
<li>
Math.max() que retorna o maior número de uma lista de números.
</li>
<li>
Math.min() que retorna o menor número de uma lista de números.
</li>
<ul>
```
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
``` 
<p>
Mas para manipular um número, precisamos saber se realmente estamos recebendo um número. Para isso temos algumas alternativas:
</p>
<ul>
<li>
Number.isNaN() vai retornar true ou false se o elemento declarado é NaN: Not A Number.
</li>
<li>
Number.isInteger() vai retornar true ou false se o número é inteiro, ou seja, se não possui vírgula.
</li>
<li>
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.
</li>
<li>
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.
</li>
<ul>
```
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!