JavaScript round float to n decimal points

The best you can do with built in JavaScript functions is to round a number to the nearest integer using the method Math.round(x), so to round a float to n decimal points we need to come up with our own function.

The function round_float() rounds a floating point number x to n decimals, if you ommit the parameter n, the function will have the same behaviour as the round() method, here is the round_float function definition:

function round_float(x,n){
  if(!parseInt(n))
  	var n=0;
  if(!parseFloat(x))
  	return false;
  return Math.round(x*Math.pow(10,n))/Math.pow(10,n);
}

With prototyping

Dmitry suggested a better approach using prototyping:

if (!Number.toFixed) {
  Number.prototype.toFixed=function(n){
    return Math.round(this*Math.pow(10, n)) / Math.pow(10, n);
  }
}
 
// example:
floating_number = 123.45687;
decimal_points = 2;
window.alert(floating_number.toFixed(decimal_points));

3 comments on “JavaScript round float to n decimal points

  1. It would be better to use prototyping here. Newer browsers support toFixed() function. Older don’t.
    So here’s the way to do it:

    if (!Number.toFixed) {
    Number.prototype.toFixed=function(x) {
    var temp=this;
    temp=Math.round(temp*Math.pow(10,x))/Math.pow(10,x);
    return temp;
    }}

    example:

    f=123.23453

    window.alert(f.toFixed(2));

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>