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 trial

JavaScript JavaScript Numbers The Math Object Create a Random Number

MD MONIRUZZAMAN
MD MONIRUZZAMAN
6,130 Points

Adding 1 inside

What is the difference between

const dieRoll = Math.floor(Math.random()*6) +1;

const dieRoll = Math.floor(Math.random()*6 +1 );

2 Answers

Steven Parker
Steven Parker
230,970 Points

Since the "floor" function only affects the fractional part of a value, it makes no difference if a whole number is added before or after. So those two statements will perform exactly the same.

One thing I still am not clear on is why in the video, he says not to use Math.ceil for the die example because it could return a zero. How is this possible? Doesn't "Math.random()" return a number between 0 and 1? Even if the random number is .000001, that would express to a 1, would it not? I've tried referring to the notes on Mozilla which state "The Math.ceil() function always rounds a number up to the next largest whole number or integer.". I guess I'm missing something....

EDIT: Disregard, it seems I missed the part where he says it could gen a number from zero up to, but not including 1.

To answer the question from Zachery Smith, if you use Math.ceil it will round 0.000001 to 1 and then add 1 making 2 the lowest possible roll, and round anything greater the 5.0 to 6. Then add 1 making 7.

boi
boi
14,242 Points

Good one Scott!