¿Cómo puedo redondear un número en JavaScript?
math.round()
no funciona porque lo redondea al decimal más cercano.
No estoy seguro de si hay una mejor manera de hacerlo que no sea separarlo en el punto decimal para mantener el primer bit. Debe haber ...
javascript
math
rounding
Ben Shelock
fuente
fuente
Respuestas:
Utilizando
Math.floor()
es una forma de hacerlo.Más información: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
fuente
Redondear hacia el infinito negativo
Math.floor()
Redondear hacia cero, generalmente llamado
Truncate()
, pero no compatible con JavaScript, se puede emular usandoMath.ceil()
números negativos yMath.floor()
números positivos.fuente
x | 0
.Math.floor()
funcionará, pero es muy lento en comparación con el uso de unaOR
operación bit a bit :EDITAR no
Math.floor()
es más lento que usar el | operador. Gracias a Jason S por revisar mi trabajo.Aquí está el código que solía probar:
fuente
|
se convierte en un entero de 32 bits, truncando;Math.floor
Redondea hacia abajo. jsfiddle.net/minitech/UVG2wPuede intentar usar esta función si necesita redondear a un número específico de decimales
ejemplos
fuente
Para redondear hacia el infinito negativo, use:
Para redondear hacia abajo hacia cero (si el número puede redondearse a un entero de 32 bits entre -2147483648 y 2147483647), use:
Para redondear hacia cero (para cualquier número), use:
fuente
El redondeo de un
number
hacia0
se puede hacer restando su parte fraccionada con signonumber % 1
:Al igual que
Math.floor
(redondea hacia-Infinity
) este método es perfectamente preciso.Hay diferencias en el manejo de
-0
,+Infinity
y-Infinity
aunque:fuente
fuente
Estaba jugando con el código de otra persona hoy y encontré lo siguiente que parece redondeado también:
Para obtener más información sobre el desplazamiento a la derecha de propagación de signos (>>), consulte Operadores bit a bit de MDN
Me tomó un tiempo averiguar qué estaba haciendo esto: D
Pero como se destacó anteriormente, Math.floor () funciona y parece más legible en mi opinión.
fuente
Necesitas poner -1 para redondear a la mitad y luego multiplicar por -1 como el ejemplo abajo.
fuente
Aquí se usa math.floor en un ejemplo simple. Esto podría ayudar a un nuevo desarrollador a tener una idea de cómo usarlo en una función y qué hace. ¡Espero eso ayude!
fuente