Math. is how all math functions begin. The “M” needs to be capped.
The function rounds up once the decimal is.5. It rounds 1.5 to 2, 2.5 to 3, 3.5 to 4 etc. It rounds -1.5 to -1, -2.5 to -2, -3.5 to -3 etc.
From the time when Math. round() will only round a floating-point value to the nearby integer value. We may use that to our benefit to achieve the task of rounding to a certain number of decimal places.
How to generate random numbers?
The following code makes a pseudo-random number, using 16 decimal places. This code is ranging from 0.0000000000000000 through 0.9999999999999999 and assigns it to the variable randomNumber.
var randomNumber = Math.random();
The function at all times brings a 16-place decimal that ranges from 0.0000000000000000 to 0.9999999999999999. We may convert the decimal to an integer by multiplying with one hundred quadrillion:
- 0000000000000000 * 100000000000000000 = 0
- 7474887706339359 * 100000000000000000 = 7474887706339359
- 9999999999999999 * 100000000000000000 = 9999999999999999
- 0000000000000000 * 6 = 0
- 7474887706339359 * 6 = 4.7474887706339359
- 9999999999999999 * 6 = 5.9999999999999994
- var bigDecimal = Math.random();
- var improvedNum = (bigDecimal * 6) + 1;
- var numberOfStars = Math.floor(improvedNum);
- Makes a 16-place decimal. It assigns to the variable bigDecimal.
- Changes the 16-place decimal to a number within the range from 0.0000000000000000 over 5.9999999999999999, and then adds 1; hence the range winds up 1.0000000000000000 over 6.9999999999999999. This number is allocated to the variable improvedNum.
- Circles the value denoted by improvedNum down to the nearby integer, which ranges from 1 through 6. Trillions of likely numbers are more than we want in our virtual die throw. We need six imaginable numbers, 1 from side to side 6. Therefore as an alternative to multiplying by a hundred quadrillion, we will first multiply the huge decimal by 6.
Perception may tell us that we may finish the job by rounding. However, that doesn’t work out mathematically. Since nil rounds up to 0 and nothing rounds down to 6. The numbers in the middle that are reached both by rounding up and rounding down would come up nearly twice as frequently. Then we can provide all the numbers an equivalent chance if we add 1 to the result, formerly round down. At this time’s the code for our simulated die throws would be as follows;
This is what takes place in the above code line by line;
Rounding negative numbers
The argument is rounded to the integer by the next higher absolute value if the fractional portion of the argument is greater than 0.5. The argument is rounded to the integer by the lower absolute value if it is less than 0.5. The argument is rounded to the afterward integer in the direction of +∞ if the fractional portion is exactly 0.5.