This content originally appeared on DEV Community and was authored by doug-source
Volta e meia me deparo com chamadas dos métodos ceil
e floor
, pertencentes à Math
. Ambos os métodos possuem a finalidade de arredondamento de um floating point
number para um integer
number. Porém, uma pergunta que sempre me surge, quase que de forma automática, é:
Afinal, existiria alguma forma de comparar visualmente a lógica dessas duas functions?
Bom... Deixe-me tentar.
Imaginemos que exista um gráfico no qual possamos colocar cada argumento passado para essas functions:
Math.ceil(num)
Tem a função de arredondar um número para o valor inteiro mais próximo, maior ou igual (>=) ao número atual.
num === 1.3
Olhando o número inserido no gráfico acima, qual seria o número inteiro mais próximo >= à 1.3? O número 2, é claro!
num === -2.001
Olhando o número inserido no gráfico acima, qual seria o número inteiro mais próximo >= à -2.001? Como estamos agora perante uma escala negativa, o próximo número inteiro >= é -2.
Math.floor(num)
Tem a função de arredondar um número para o valor inteiro mais próximo, menor ou igual (<=) ao número atual. Resumidamente funciona igual à Math.ceil
, porém com sentido inverso no gráfico.
num === 1.3
Olhando o número inserido no gráfico acima, qual seria o número inteiro mais próximo <= à 1.3? O número 1, é claro!
num === -2.001
Olhando o número inserido no gráfico acima, qual seria o número inteiro mais próximo <= à -2.001? Como estamos agora perante uma escala negativa, o próximo número inteiro <= é -3.
Assim, analizando o sentido do arredondamento dessas functions e levando o gráfico em consideração, temos:
Lembrar de conceitos utilizando imagens (como a mencionada acima) costuma me auxiliar bastante na fixação deles. 😉
...
This content originally appeared on DEV Community and was authored by doug-source
doug-source | Sciencx (2024-11-12T00:17:09+00:00) Math.ceil vs Math.floor. Retrieved from https://www.scien.cx/2024/11/12/math-ceil-vs-math-floor/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.