Question: In my code I will be accepting multiple values, for example:

```
8.7456
8.7
8

```

and I need to have them appear as 

```
8.74
8.7
8

```

i.e. display up to two decimal place.

I understand that `.toFixed(2)` will help me with the first value, but on the 2nd and 3rd value there will be trailing zeroes that I do not want.

How to produce my desired results?

Answer: 
Use [`Number.toFixed`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) to round the number up to two digits and format as a string. Then use [`String.replace`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) to chop off trailing zeros:

```js
[8.7456, 8.745, 8.74, 8.7, 8].forEach(function(num) {
  var str = num.toFixed(2).replace(/\.?0+$/, "");
  console.log(num, str);
});
```
Multiply by 100, `floor`, divide by 100.

```
var n = 8.7456;
var result = Math.floor(n * 100) / 100; // 8.74

```

Edit: if you’re looking at this question after the fact, this is probably not what you want. It satisfies the odd requirement of having `8.7456` appear as `8.74`. See also [the relevant comment](https://stackoverflow.com/questions/10215770/display-numbers-up-to-two-decimals-places-without-trailing-zeros/10215818#comment13122758_10216503).