¿Cuál es la mejor manera de quitar el "0". XXX% de un número y convertirlo en un porcentaje? ¿Qué sucede si el número resulta ser un int?
var number1 = 4.954848;
var number2 = 5.9797;
$(document).ready(function() {
final = number1/number2;
alert(final.toFixed(2) + "%");
});
javascript
math
usuario1040259
fuente
fuente
Math.floor
? Y noMath.round
? Incluso en su ejemplo4.954848 / 5.9797
está más cerca83%
que a82%
sus salidas de código.~~
es mucho menos legible queMath.floor
fuente
La mejor solución, donde
en
está la configuración regional en inglés:fraction.toLocaleString("en", {style: "percent"})
fuente
fraction.toLocaleString("en", { style: "percent", minimumFractionDigits: 2 })
Ver stackoverflow.com/a/29773435/411428Bueno, si tienes un número como
0.123456
ese es el resultado de una división para dar un porcentaje, multiplícalo por 100 y luego redondea o usatoFixed
como en tu ejemplo.Aquí hay un complemento de jQuery para hacer eso:
Uso:
fuente
jQuery.round
yjQuery.divide
yjQuery.multiply
Numeral.js es una biblioteca que creé que puede formatear números, moneda, porcentajes y tiene soporte para la localización.
numeral(0.7523).format('0%') // returns string "75%"
numeral.js
fuente
numeral.js
fue el 27 de marzo de 2017. O la biblioteca es perfecta (sin defectos) o ya no se mantiene activamente. Al 28 de enero de 2019, el proyecto tiene 135 problemas abiertos, siendo el más antiguo de noviembre de 2012. El número de problemas abiertos sin compromiso en casi 2 años sugiere que el proyecto ya no está siendo atendido. Feliz de estar convencido de lo contrario.var porcentaje = Math.floor (100 * número1 / número2 - 100) + '%';
fuente
La mayoría de las respuestas sugieren agregar '%' al final. Preferiría
Intl.NumberFormat()
con{ style: 'percent'}
fuente
La respuesta de @ xtrem es buena, pero creo que
toFixed
ymakePercentage
son de uso común. Defina dos funciones, y podemos usarlas en todas partes.fuente