Java provides us `Math`

class, which includes methods with basic numeric operations such as logarithm, square root etc. One of these methods is `random()`

, which give us a pseudorandom positive double number greater than or equal to 0.0 and less than 1.0 – [0.0, 1.0).

In this example we are going to show how to produce integer and double random numbers between a defined space, via `random()`

method.

## 1. Example of Math.random method

Create a java class with name `MathRandomClass`

and paste the following code.

__MathRandomClass.java:__

package com.javacodegeeks.javacore.mathrandom; public class MathRandomClass { public static void main(String[] args) { // TODO Auto-generated method stub // a simple random number double x = Math.random(); System.out.println("Double between 0.0 and 1.0: x = "+x); // double between [0.0, 20.0) double y = Math.random()*20.0; System.out.println("Double between 0.0 and 20.0: y = "+y); // integer between [3,7] int r1 = (int) (Math.random()*5)+3; System.out.println("Integer between 3 and 8: r1 = "+r1); // integer between [-10,10) - maximum 9 int r2 = (int) (Math.random()*20)-10; System.out.println("Integer between -10 and 10: r2 = "+r2); } }

Now lets explain the code above. Firstly, we use the `random()`

method in order to take a positive signed double value, that belongs into the range [0.0, 0.1). For generating random integer or double numbers between a range, we should multiply and/or sum the appropriate positive and/or negative values in order to achieve the desirable result. For example, if we want a random positive, double number greater than or equal to 0.0 but less than 20.0, we should multiply the result of `random()`

method with the double number 20.0. Respectively, if we multiply the result with 5 and add number 3, the range has as minimum value number 3 and as maximum value their sum (5+3). Please notice that the random values are always less than this sum – in our example the range is [3,8). Also notice that for integer values we should cast the result. We can use the same way for negative random numbers etc.

For a better understanding, please look the output of the execution. As you can notice, all the parameters take a value that is into their respective range.

__Output:__

```
Double between 0.0 and 1.0: x = 0.9749288905833321
Double between 0.0 and 20.0: y = 14.067387697238761
Integer between 3 and 8: r1 = 7
Integer between -10 and 10: r2 = -9
```

## Download the source file

This was a tutorial about Math.random() in Java. Download the source code of this example: MathRandomExample.zip