--- id: cf1111c1c12feddfaeb1bdef title: Generate Random Whole Numbers with JavaScript challengeType: 1 videoUrl: 'https://scrimba.com/c/cRn6bfr' forumTopicId: 18186 --- ## Description
It's great that we can generate random decimal numbers, but it's even more useful if we use it to generate random whole numbers.
  1. Use Math.random() to generate a random decimal.
  2. Multiply that random decimal by 20.
  3. Use another function, Math.floor() to round the number down to its nearest whole number.
Remember that Math.random() can never quite return a 1 and, because we're rounding down, it's impossible to actually get 20. This technique will give us a whole number between 0 and 19. Putting everything together, this is what our code looks like: Math.floor(Math.random() * 20); We are calling Math.random(), multiplying the result by 20, then passing the value to Math.floor() function to round the value down to the nearest whole number.
## Instructions
Use this technique to generate and return a random whole number between 0 and 9.
## Tests
```yml tests: - text: The result of randomWholeNum should be a whole number. testString: assert(typeof randomWholeNum() === "number" && (function(){var r = randomWholeNum();return Math.floor(r) === r;})()); - text: You should be using Math.random to generate a random number. testString: assert(code.match(/Math.random/g).length > 1); - text: You should have multiplied the result of Math.random by 10 to make it a number that is between zero and nine. testString: assert(code.match(/\s*?Math.random\s*?\(\s*?\)\s*?\*\s*?10[\D]\s*?/g) || code.match(/\s*?10\s*?\*\s*?Math.random\s*?\(\s*?\)\s*?/g)); - text: You should use Math.floor to remove the decimal part of the number. testString: assert(code.match(/Math.floor/g).length > 1); ```
## Challenge Seed
```js var randomNumberBetween0and19 = Math.floor(Math.random() * 20); function randomWholeNum() { // Only change code below this line. return Math.random(); } ```
### After Test
```js (function(){return randomWholeNum();})(); ```
## Solution
```js var randomNumberBetween0and19 = Math.floor(Math.random() * 20); function randomWholeNum() { return Math.floor(Math.random() * 10); } ```