Matt
Matt

Reputation: 173

Remove numbers after decimal in javascript

var randomNumber = (Math.random()*3 + 3.5); randomNumber;

alert(randomNumber)

This piece of code returns a number like

4.589729345235789

I need it to return

4.5

So need it to remove all the numbers after the decimal except the first one, can anyone show me how to do that?

Upvotes: 3

Views: 6082

Answers (2)

Edwin Finch
Edwin Finch

Reputation: 903

If you need to set the amount of decimal places in a number, you can use toFixed(X), where X is the amount of decimal places you want to have.

For example,

4.589729345235789.toFixed(1); would result in 4.6.

Keep in mind, this will convert the number into a string.

If you need absolute accuracy and 4.6 is not good enough for you, see this Stackoverflow post, which has this as a more "accurate" method for your case:

var with2Decimals = num.toString().match(/^-?\d+(?:\.\d{0,2})?/)[0]

Notice the {0,2} inside of that, which is the range. You can change it to {0,1} in your case.

Upvotes: 3

guest271314
guest271314

Reputation: 1

You use Number.prototype.toPrecision() with parameter 2, Number.prototype.toFixed() with parameter 1.

+randomNumber.toPrecision(2);

Alternatively, you can use String.prototype.slice() with parameters 0, 3

+String(randomNumber).slice(0, 3);

Upvotes: 5

Related Questions