I wanted to display a number to 2 decimal places.

I thought I could use `toPrecision(2)`

in JavaScript .

However, if the number is `0.05`

, I get `0.0500`

. I'd rather it stay the same.

See it on JSbin.

What is the best way to do this?

I can think of coding a few solutions, but I'd imagine (I hope) something like this is built in?

```
float_num.toFixed(2);
```

**Note:**`toFixed()`

will round or pad with zeros if necessary to meet the specified length.

```
function round(value, decimals) {
return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
}
```

round(1.005, 2); // return 1.01

round(1.004, 2); // return 1 instead of 1.00

The answer is following this link: http://www.jacklmoore.com/notes/rounding-in-javascript/

`number.parseFloat(2)`

works but it returns a string.

If you'd like to preserve it as a number type you can use:

`Math.round(number * 100) / 100`

You could try mixing `Number()`

and `toFixed()`

.

Have your target number converted to a nice string with X digits then convert the formated string to a number.

`Number( (myVar).toFixed(2) )`

See example below:

```
var myNumber = 5.01;
var multiplier = 5;
$('#actionButton').on('click', function() {
$('#message').text( myNumber * multiplier );
});
$('#actionButton2').on('click', function() {
$('#message').text( Number( (myNumber * multiplier).toFixed(2) ) );
});
```

```
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button id="actionButton">Weird numbers</button>
<button id="actionButton2">Nice numbers</button>
<div id="message"></div>
```

I have made this function. It works fine but returns string.

```
function show_float_val(val,upto = 2){
var val = parseFloat(val);
return val.toFixed(upto);
}
```

**toFixed** function is used for restricting float numbers to 2 decimal places in javascript

```
two_decimal_num = parseFloat(3.14159.toFixed(2));
console.log(two_decimal_num)
```

You could do it with the `toFixed`

function, but it's buggy in IE. If you want a reliable solution, look at my answer here.

Try `toFixed`

instead of `toPrecision`

.

Don't know how I got to this question, but even if it's many years since this has been asked, I would like to add a quick and simple method I follow and it has never let me down:

```
var num = response_from_a_function_or_something();
var fixedNum = parseFloat(num).toFixed( 2 );
```

The

`toFixed()`

method formats a number using fixed-point notation.

and here is the syntax

```
numObj.toFixed([digits])
```

**digits** argument is optional and by default is 0. And the return type is string not number. But you can convert it to number using

```
numObj.toFixed([digits]) * 1
```

It also can throws exceptions like `TypeError`

, `RangeError`

Here is the full detail and compatibility in the browser.

```
let a = 0.0500
a.toFixed(2);
//output
0.05
```

©2020 All rights reserved.