Make a number a percentage

What's the best way to strip the "0."XXX% off a number and make it a percentage? What happens if the number happens to be an int?

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

7 Answers

A percentage is just:

(number_one / number_two) * 100 

No need for anything fancy:

var number1 = 4.954848; var number2 = 5.9797; alert(Math.floor((number1 / number2) * 100)); //w00t!
8
((portion/total) * 100).toFixed(2) + '%' 
0

The best solution, where en is the English locale:

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

4

Well, if you have a number like 0.123456 that is the result of a division to give a percentage, multiply it by 100 and then either round it or use toFixed like in your example.

Math.round(0.123456 * 100) //12 

Here is a jQuery plugin to do that:

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

Usage:

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

Most answers suggest appending '%' at the end. I would rather prefer Intl.NumberFormat() with { 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);
1

Numeral.js is a library I created that can can format numbers, currency, percentages and has support for localization.

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

1

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like