Ответ 1
Процент просто:
(number_one / number_two) * 100
Не нужно ничего особенного
var number1 = 4.954848;
var number2 = 5.9797;
alert(Math.floor((number1 / number2) * 100)); //w00t!
Какой лучший способ удалить "0." XXX% от числа и сделать его процентным? Что произойдет, если число окажется int?
var number1 = 4.954848;
var number2 = 5.9797;
$(document).ready(function() {
final = number1/number2;
alert(final.toFixed(2) + "%");
});
Процент просто:
(number_one / number_two) * 100
Не нужно ничего особенного
var number1 = 4.954848;
var number2 = 5.9797;
alert(Math.floor((number1 / number2) * 100)); //w00t!
((portion/total) * 100).toFixed(2) + '%'
Лучшее решение, где en
- английский язык:
fraction.toLocaleString("en", {style: "percent"})
Хорошо, если у вас есть число, подобное 0.123456
, то есть результат деления, чтобы дать процент, умножьте его на 100, а затем округлите его или используйте toFixed
, как в вашем примере.
Math.round(0.123456 * 100) //12
Вот плагин jQuery для этого:
jQuery.extend({
percentage: function(a, b) {
return Math.round((a / b) * 100);
}
});
Использование:
alert($.percentage(6, 10));
Numeral.js - это библиотека, которую я создал, которая может форматировать числа, валюту, проценты и поддерживать локализацию.
numeral(0.7523).format('0%') // returns string "75%"
var percent = Math.floor(100 * number1/number2 - 100) + '%';
Ответ @xtrem - это хорошо, но я думаю, что toFixed
и makePercentage
широко используются. Определите две функции, и мы можем использовать это везде.
const R = require('ramda')
const RA = require('ramda-adjunct')
const fix = R.invoker(1, 'toFixed')(2)
const makePercentage = R.when(
RA.isNotNil,
R.compose(R.flip(R.concat)('%'), fix, R.multiply(100)),
)
let a = 0.9988
let b = null
makePercentage(b) // -> null
makePercentage(a) // -> 99.88%