# JavaScript displaying a float to 2 decimal places

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 `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
``````