将数字设为百分比

时间:2011-12-15 15:42:07

标签: javascript math

从数字中删除“0。”XXX%并将其设为百分比的最佳方法是什么?如果数字恰好是int?会发生什么?

var number1 = 4.954848;
var number2 = 5.9797;

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

8 个答案:

答案 0 :(得分:175)

百分比只是:

(number_one / number_two) * 100

不需要任何花哨的东西:

var number1 = 4.954848;
var number2 = 5.9797;

alert(Math.floor((number1 / number2) * 100)); //w00t!

答案 1 :(得分:48)

((portion/total) * 100).toFixed(2) + '%'

答案 2 :(得分:25)

最佳解决方案,其中en是英语区域设置:

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

答案 3 :(得分:16)

好吧,如果你有一个像0.123456这样的数字,这是分数给出一个百分比的结果,那就把它乘以100,然后将它四舍五入,或者像你的例子一样使用toFixed。 / p>

Math.round(0.123456 * 100) //12

这是一个jQuery插件:

jQuery.extend({
    percentage: function(a, b) {
        return Math.round((a / b) * 100);
    }
});

用法:

alert($.percentage(6, 10));

答案 4 :(得分:2)

Numeral.js是我创建的一个库,可以格式化数字,货币,百分比并支持本地化。

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

答案 5 :(得分:1)

var percent = Math.floor(100 * number1 / number2 - 100)+'%';

答案 6 :(得分:0)

@xtrem的答案很好,但是我认为toFixedmakePercentage是常用的。定义两个函数,我们可以在任何地方使用它。

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%​​​​​

答案 7 :(得分:0)

大多数答案建议在末尾添加“%”。我宁愿将Intl.NumberFormat(){ style: 'percent'}

var num = 25;

var option = {
  style: 'percent'

};
var formatter = new Intl.NumberFormat("en-US", option);
var percentFormat = formatter.format(num / 100);
console.log(percentFormat);