Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialSpencer Renfro
Courses Plus Student 11,133 PointsMath.floor vs. Math.ceil on random number generator
On the random number generator it uses Math.floor, but is there a reason for uses this specifically instead of Math.ceil?
1 Answer
jb30
44,806 PointsMath.random()
returns a number between 0
inclusive and 1
exclusive, which means that it can return 0
and cannot return 1
. If you use Math.ceil(Math.random() * highValue)
and Math.random()
returns exactly 0
, then you will have Math.ceil(0 * highValue)
, which is Math.ceil(0)
, which is 0
, and 0
is not greater than or equal to 1
.
Laisvūnas Miškinis
6,614 PointsLaisvūnas Miškinis
6,614 Pointsbut why not use Math.round() in something like this:
let randomNum = Math.round(Math.random() * +maxValue);
you will no longer be forced to round only one way which will be more random than floor or ceil.