Сделайте число в процентах - PullRequest
90 голосов
/ 15 декабря 2011

Какой лучший способ убрать «0» из числа XXX% и сделать его процентом? Что произойдет, если число будет int?

var number1 = 4.954848;
var number2 = 5.9797;

$(document).ready(function() {    
    final = number1/number2;
    alert(final.toFixed(2) + "%");
});

Ответы [ 7 ]

179 голосов
/ 15 декабря 2011

Процент просто:

(number_one / number_two) * 100

Не нужно ничего особенного:

var number1 = 4.954848;
var number2 = 5.9797;

alert(Math.floor((number1 / number2) * 100)); //w00t!
50 голосов
/ 03 июня 2016
((portion/total) * 100).toFixed(2) + '%'
26 голосов
/ 20 ноября 2016

Лучшее решение, где en - английский язык:

fraction.toLocaleString("en", {style: "percent"})

16 голосов
/ 15 декабря 2011

Что ж, если у вас есть число типа 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));
2 голосов
/ 03 декабря 2016

Numeral.js - это созданная мной библиотека, которая может форматировать числа, валюту, проценты и поддерживает локализацию.

numeral(0.7523).format('0%') // returns string "75%"

1 голос
/ 12 января 2017

var процент = Math.floor (100 * число 1 / число 2 - 100) + '%';

0 голосов
/ 22 августа 2018
Ответ

@ 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%​​​​​
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...