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!

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 trial

JavaScript JavaScript Numbers The Math Object Random Number Challenge – Solution

Spencer Renfro
Spencer Renfro
Courses Plus Student 11,133 Points

Math.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

Math.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.

but 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.