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 trialAdam Maley
5,946 PointsUsing Math.Ceil instead of Math.floor?
Math.floor(Math.random() * 6) + 1 How would this ever result in 0 like he said ?
the + 1 at the end would stop this from happening?
2 Answers
Tina Gee
3,296 PointsIf you test Math.ceil() and Math.floor() in the console, it'll make a bit more sense.
For example, Math.ceil(-0.001) returns -0. Math.floor(-0.001) returns -1.
Since we are working with rolling dice and dice have sides 1 through 6 but never a 0 side, we will want to use Math.floor() because it will prevent us from having to deal with the possibility of Math.ceil returning a 0.
Steven Parker
231,268 PointsIt might result in 0 before the 1 was added.
Using Math.Ceil would not help the case where the value was actually zero.
I believe the possibility of the result of the formula being 0 was discussed as the reason to add 1 to it. If you heard otherwise, can you give a specific time reference in the video for where it is said?
Steven Parker
231,268 PointsSteven Parker
231,268 PointsThat's not quite right. Both Math.floor and Math.ceil could return a 0. But Math.floor gives you the same chances of getting each possible value.
Swedina Yolanda
931 PointsSwedina Yolanda
931 PointsIt's said that Math.random returns a random number in the range from 0 up to 1, so I'm kinda confused with the -0.001 example.
Steven Parker
231,268 PointsSteven Parker
231,268 PointsYou're right, Swedina, that's not an example of a value you could get from "Math.random". But it does illustrate the difference between "Math.ceil" and "Math.floor".
A better example might be the value "0.5".