Type Casting Math.random?
java, parentheses, random, type-conversion
Solution
This code:
number = (int) Math.random() * 10;
first calculates this:
(int) Math.random()
Since `Math.random()` returns a number from 0 up to but not including 1, if you cast it to int, it will round down to 0. Then when you multiply 10 to 0 you get 0.
Problem
Had a look around the questions on this site and could not quite find the answer I was looking for about type casting the `Math.random()` method from double to int. My question is, why does `Math.random` only return a 0 without parentheses whereas it returns random numbers when it is contained within the parentheses? The first part of code returns 0: ``` int number; number = (int) Math.random() * 10; System.out.println("\nThe random number is " + number); ``` This code works however: ``` int number; number = (int) (Math.random() * 10); System.out.println("\nThe random number is " + number); ``` It should be noted I have seen a few different pieces of code on typecasting whereby some programmers seem to use both ways of casting.