43

I have a script which returns a price for a product. However, the price may or may not include trailing zeros, so sometimes I might have 258.22 and other times I might have 258.2. In the latter case, I need to add the trailing zero. How would I go about doing this?

Sebastian Simon
  • 18,263
  • 7
  • 55
  • 75
Nathan Pitman
  • 2,286
  • 4
  • 30
  • 46
  • 1
    Possible duplicate of [Format number to always show 2 decimal places](https://stackoverflow.com/questions/6134039/format-number-to-always-show-2-decimal-places) – Liam Aug 06 '18 at 15:28

3 Answers3

110

You can use javascript's toFixed method (source), you don't need jQuery. Example:

var number = 258.2;    
var rounded = number.toFixed(2); // rounded = 258.20

Edit: Electric Toolbox link has succumbed to linkrot and blocks the Wayback Machine so there is no working URL for the source.

albert
  • 8,112
  • 3
  • 47
  • 63
rosscj2533
  • 9,195
  • 7
  • 39
  • 56
13

Javascript has a function - toFixed - that should do what you want ... no JQuery needed.

var n = 258.2;
n.toFixed (2);  // returns 258.20
dbrown0708
  • 4,544
  • 4
  • 25
  • 22
6

I don't think jQuery itself has any string padding functions (which is what you're looking for). It's trivial to do, though:

function pad(value, width, padchar) {

    while (value.length < width) {
        value += padchar;
    }
    return value;
}

Edit The above is great for strings, but for your specific numeric situation, rosscj2533's answer is the better way to go.

Community
  • 1
  • 1
T.J. Crowder
  • 1,031,962
  • 187
  • 1,923
  • 1,875