Type Casting Math.random?

前端 未结 2 1361
野趣味
野趣味 2021-01-20 01:26

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 in

相关标签:
2条回答
  • 2021-01-20 01:58

    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.

    0 讨论(0)
  • 2021-01-20 02:05

    Math.random() returns a number from 0 to 1. You want to cast the result of (Math.random()*10) to int, not the number you get from Math.random itself. Numbers get rounded down. Therefore, for example, 0.3, which you can get from Math.random, gets rounded to 0. Again, you want to round the result of 0.3 times 10, which is 3. The parenthesis is important.

    0 讨论(0)
提交回复
热议问题