Rounding a number to 2 decimal places only if there are decimal placesPosted on: May 30, 2012

I couldn’t find it done this way anywhere else, so I thought I’d share:

var number = 3.14159;

// If there are decimal places
if (number % 1 !== 0) {
  // Cast to string and return the last two numbers.
  number = number.toFixed(2);
}

// number is now '3.14'

If you really wanted to have a one liner, you could use a ternary operator and rely on the fact that 0 is falsy:

number = number % 1 ? number.toFixed(2) : number;

Nice and easy!