Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript JavaScript Basics (Retired) Working With Numbers The Random Challenge Solution

Sebastian Angelo-Perez
Sebastian Angelo-Perez
1,835 Points

Is there a mistake in my code or the random challenge has a problem?

I wrote and tried the code. When I chose 1 as starting number (input1) and 3 as a top number (just input) the answer I have is "1 is a number between 1 and 3.". Is there something wrong with my code?

var input1 = prompt("Please type a starting number"); var bottomNumber = parseInt(input1); var input = prompt('Please type a number'); var topNumber = parseInt(input); var randomNumber = Math.floor(Math.random() * (topNumber-bottomNumber + 1)) + bottomNumber ; var message = "<h1>" + randomNumber + " is a number between " + bottomNumber + " and " + topNumber + ".</h1>"; document.write(message);

3 Answers

Jason Anders
MOD
Jason Anders
Treehouse Moderator 145,623 Points

I ran your code as is and got the #2 and #3 returned a couple of time... #1 did come up most times, but your code is fine and works. If you enter a wider range of numbers, you will notice a significant increase in different numbers coming up.

Jason

Sebastian Angelo-Perez
Sebastian Angelo-Perez
1,835 Points

Thanks Jason, however, what I still don't understand is, why this sentence "1 is a number between 1 and 3." I would have expected any number but #1. It seems that the code is missing something to avoid this mistake, don't you agree? Is it something that one can resolve using conditional statements, perhaps? It will be covered in the next chapter by the way :-).

Jason Anders
Jason Anders
Treehouse Moderator 145,623 Points

No, the code is correct and technically 1 is a number between 1 and 3 (inclusively). The program is a simple one that is designed to show students how to use JavaScript to pick random numbers. If you didn't use the Math.floor method, you would get many many decimal places (e.g. 1.235643234) which is "between" 1 and 3, but Math.floor rounds down to the whole number.

You could code to stop the top and bottom number from being included, but for the purpose of this example, it would just be easier to re-word the sentence to say "From 1 to 3." :)

Sebastian Angelo-Perez
Sebastian Angelo-Perez
1,835 Points

Thanks and yes, you're right, technically 1 is a number between 1 and 3...awesome, now I'm clear and I can move forward!