Como arredondar um número em JavaScript?
math.round()
não funciona porque o arredonda para o decimal mais próximo.
Não tenho certeza se existe uma maneira melhor de fazê-lo além de separá-lo no ponto decimal para manter o primeiro bit. Deve haver...
javascript
math
rounding
Ben Shelock
fonte
fonte
Respostas:
Usar
Math.floor()
é uma maneira de fazer isso.Mais informações: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
fonte
Arredondar para o infinito negativo -
Math.floor()
Arredondar para zero - geralmente chamado
Truncate()
, mas não suportado por JavaScript - pode ser emulado usandoMath.ceil()
-se números negativos eMath.floor()
números positivos.fonte
x | 0
.Math.floor()
funcionará, mas é muito lento comparado ao uso de umaOR
operação bit a bit :EDIT não
Math.floor()
é mais lento do que usar o | operador. Agradeço ao Jason S por verificar meu trabalho.Aqui está o código que eu usei para testar:
fonte
|
converte em um número inteiro de 32 bits, truncando;Math.floor
Arredonda para baixo. jsfiddle.net/minitech/UVG2wVocê pode tentar usar esta função se precisar arredondar para um número específico de casas decimais
exemplos
fonte
Para arredondar para o infinito negativo, use:
Para arredondar para zero (se o número puder arredondar para um número inteiro de 32 bits entre -2147483648 e 2147483647), use:
Para arredondar para zero (para qualquer número), use:
fonte
O arredondamento de um
number
para0
pode ser feito subtraindo sua parte fracionária assinadanumber % 1
:Como
Math.floor
(arredonda para-Infinity
) este método é perfeitamente preciso.Existem diferenças no manuseio e
-0
, no entanto:+Infinity
-Infinity
fonte
fonte
Estava brincando com o código de alguém hoje e encontrou o seguinte que parece arredondar para baixo também:
Para obter mais informações sobre o deslocamento à direita de propagação de sinal (>>), consulte Operadores de bit a bit MDN
Levei um tempo para descobrir o que estava fazendo: D
Mas, como destacado acima, Math.floor () funciona e parece mais legível na minha opinião.
fonte
Você precisa colocar -1 para arredondar a metade para baixo e depois multiplicar por -1, como no exemplo abaixo.
fonte
Aqui está math.floor sendo usado em um exemplo simples. Isso pode ajudar um novo desenvolvedor a ter uma idéia de como usá-lo em uma função e o que ele faz. Espero que ajude!
fonte