Necesito ronda por ejemplo 6.688689
a 6.7
, pero siempre me muestra 7
.
Mi metodo:
Math.round(6.688689);
//or
Math.round(6.688689, 1);
//or
Math.round(6.688689, 2);
Pero el resultado siempre es el mismo 7
... ¿Qué estoy haciendo mal?
javascript
rounding
Vitalii Ponomar
fuente
fuente
(6.688689).toFixed(1);
.toFixed
devuelve una cadena. Asegúrate de envolver el resultadoNumber()
. Ver respuesta aceptada, y otros.Respuestas:
fuente
Number((456.1235).toFixed(3)) -> 456.123
,Number((1.235).toFixed(2)) -> 1.24
... Stupid JavaSript ...fuente
Math.round(1.005*100)/100
por ejemplo, de MDN1.005 * 100 = 100.49999999999999
(al menos en el motor JS lo intenté). Es por eso que no funciona y por qué nunca debe confiar en que los flotadores sean perfectamente precisos.Utiliza la
toFixed()
función.fuente
Upd (2019-10). Gracias al siguiente código de Reece Daniels ahora disponible como un conjunto de funciones empaquetadas en npm-package esperado-ronda (eche un vistazo).
Puede usar la función auxiliar del ejemplo de MDN . Entonces tendrás más flexibilidad:
Upd (2019-01-15). Parece que los documentos MDN ya no tienen estas funciones auxiliares. Aquí hay una copia de seguridad con ejemplos:
Ejemplos de uso:
fuente
Un
Number
objeto en JavaScript tiene un método que hace exactamente lo que necesita. Ese método esNumber.toPrecision([precision])
.Al igual que con
.toFixed(1)
él, convierte el resultado en una cadena y necesita volver a convertirse en un número. Hecho usando el+
prefijo aquí.punto de referencia simple en mi computadora portátil:
fuente
1e-10.toPrecision(3)
: "1.00e-10": se redondea a dígitos significativos .Si no solo desea usar,
toFixed()
sino tambiénceil()
yfloor()
en un flotador, puede usar la siguiente función:Produce:
UPD:
La otra forma posible es esta:
Produce:
fuente
Mi función redonda extendida:
Salida de ejemplo:
fuente
Vea abajo
var original = 28.59;
var result=Math.round(original*10)/10
te devolveré28.6
Espero que esto sea lo que quieres ...
fuente
fuente
Creo que esta función puede ayudar.
fuente
Creo que la función a continuación puede ayudar
uso:
roundOff(600.23458,2);
volverá600.23
fuente
si está bajo el contexto de node.js, puede probar mathjs
fuente
Existe la alternativa .toLocaleString () para formatear números, con muchas opciones con respecto a configuraciones regionales, agrupación, formateo de moneda, anotaciones. Algunos ejemplos:
Redondea a 1 decimal, devuelve un flotador:
Redondea a 2 decimales, formatea como moneda con el símbolo especificado, usa la agrupación de comas para miles:
Formato como moneda local :
Redondear al mínimo 3 decimales, forzar ceros para mostrar:
Estilo porcentual para proporciones. Entrada * 100 con signo%
fuente
fuente
Tengo una muy buena solución si toFixed () no funciona.
Ejemplo
fuente
Si usa Browserify hoy, tendrá que probar: roundTo a una lib NPM muy útil
fuente
Ajuste menor a esta respuesta :
fuente
roundToStep(1.015, 0.001)