Inspectopedia Help

'Math.random()' cast to 'int'

Reports calls to Math.random() which are immediately cast to int.

Casting a double between 0.0 (inclusive) and 1.0 (exclusive) to int will always round down to zero. The value should first be multiplied by some factor before casting it to an int to get a value between zero (inclusive) and the multiplication factor (exclusive). Another possible solution is to use the nextInt() method of java.util.Random.


int r = (int)Math.random() * 10;

After the quick fix is applied:

int r = (int)(Math.random() * 10);

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3


Java, 233.SNAPSHOT

Last modified: 13 July 2023