¿Se puede redondear un número en JavaScript a 1 carácter después del punto decimal (redondeado correctamente)?
Probé el * 10, redondo, / 10 pero deja dos decimales al final del int.
javascript
rounding
Caminante
fuente
fuente
Math.round(n * 10) / 10
funciona. Cual es tu codigoRespuestas:
Math.round(num * 10) / 10
funciona, aquí hay un ejemplo ...si desea que tenga un lugar decimal, incluso cuando eso sería un 0, entonces agregue ...
EDITAR: Agregar ronda con función de precisión ...
Usando este principio, como referencia, aquí hay una pequeña y práctica función redonda que requiere precisión ...
... uso ...
... se redondea al número entero más cercano (precisión 0) ...
... y se puede usar para redondear a los 10 o 100 más cercanos, etc.
... y manejo correcto de números negativos ...
... y se puede combinar con toFixed para formatear consistentemente como cadena ...
fuente
.toFixed()
ya que devuelve una cadena cuando tal vez desee un número.parseFloat
eliminará los decimales que quedan.toFixed()
si es un número entero (ceros). En general, si quieres hacer los cálculos, es mejor seguir tu primer ejemplo. Si desea mostrar un número en su IU, use.toFixed()
..toFixed()
ya que podría devolver diferentes resultados de redondeo para diferentes navegadores. ¡Lea esta publicación para obtener detalles sobre el tema!fuente
toFixed()
tiene fallas: lo he visto en un navegador Chrome donde llamotoFixed()
, luego lo convierto en una cadena, y muestra algo como10.00000000068
: extraño. Sin embargo, no puedo reproducir esto de manera confiable..toFixed()
ya que devuelve unString
cuando tal vez desee unNumber
Si lo usa
Math.round(5.01)
, obtendrá en5
lugar de5.0
.Si usas
toFixed
te encuentras con problemas de redondeo .Si quieres lo mejor de ambos mundos combina los dos:
Es posible que desee crear una función para esto:
fuente
lodash
tiene unround
método:Doc .
Fuente .
fuente
Voto por
toFixed()
, pero, para el registro, aquí hay otra forma que utiliza el desplazamiento de bits para emitir el número a un int. Por lo tanto, siempre se redondea hacia cero (hacia abajo para números positivos, hacia arriba para negativos).Pero bueno, como no hay llamadas a funciones, es muy rápido. :)
Y aquí hay uno que usa la coincidencia de cadenas:
No recomiendo usar la variante de cadena, solo sayin.
fuente
Prueba con esto:
menos complicado y más fácil de implementar ...
con esto, puede crear una función para hacer:
Mostrar fragmento de código
EDITAR : vea esto Cómo redondear usando REDONDEAR MEDIA ARRIBA. Modo de redondeo que a la mayoría de nosotros nos enseñaron en la escuela primaria
fuente
x = número, n = decimales:
fuente
¿Por qué no solo
fuente
fuente
Para completar la mejor respuesta:
El número del parámetro de entrada puede "no" ser siempre un número, en este caso .toFixed no existe.
fuente
Versión ES 6 de la respuesta aceptada:
fuente
Usando el método toPrecision:
fuente
12.345.toPrecision( 2 )
es así"12"
.Si su método no funciona, por favor publique su código.
Sin embargo, puede realizar la tarea de redondeo como:
Te dará 234.56
similar
Dará 234.5
De esta manera, puede usar una variable en lugar de la constante como se usó anteriormente.
fuente
Pequeño filtro angular si alguien lo quiere:
usar si a través de:
:)
fuente
En general, el redondeo se realiza escalando:
round(num / p) * p
El uso de la notación exponencial maneja el redondeo de los números + ve, correctamente. Sin embargo, este método no logra redondear los casos de borde correctamente.
Aquí, también hay una función que escribí para hacer redondeo aritmético, puede probarlo usted mismo.
fuente
Esto parece funcionar de manera confiable en todo lo que le arrojo:
Se redondea, por lo que es posible que deba modificarlo según el caso de uso. Esto debería funcionar:
fuente
Si le interesa el redondeo correcto, entonces:
Si no, entonces ya tienes una respuesta de publicaciones anteriores.
fuente
Math.round( num * 10) / 10
no funcionaPor ejemplo,
1455581777.8-145558160.4
te da1310023617.3999999
.Así que solo usa
num.toFixed(1)
fuente
Hice uno que devuelve el tipo de número y también coloca decimales solo si son necesarios (sin relleno de 0).
Ejemplos:
El código:
fuente
Encontré una manera de evitar los problemas de precisión:
fuente
Gracias
fuente