Reputation: 173
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
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
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