```
static public void main(String[] args) {
for (int i=0; i<10; i++) {
int a = (int)(Math.random()*11);
System.out.print(a+" ");
}
System.out.println('\t');
for(int i=0; i<10; i++) {
int a = (int)(Math.random()*6);
System.out.print(a+" ");
}
}
```
제가 알기로 Math.random이라는 함수는 0.0<=Mate.random<1.0 의 값을 랜덤으로 주는 것으로
실수를 정수형인 int로 형변환 하게 되면 반올림을 하지 않고 소수점 이하를 버리는것으로 알고 있습니다.
그런데 6을 곱할경우 최대값이 5.4라서 최대값이 6이라는것은 알고 있지만
어째서 11을 곱할경우 마찬가지로 0.9*11이라 최대 값이 10을 넘지 못하는데 소수점 이하를 버리고 10의 값을 최대로 출력할수 있는건가요?
sehongpark님의 답변
## Math.random()
해당 함수는 0.0 이상 1.0 미만의 실수 값을 반환합니다.
따라서 Math.random()에 11을 곱하면 결과 값의 범위는 아래와 같습니다.
+ 11 * 0.0 <= 11 * Math.random() < 11 * 1.0
위 결과 값을 int로 캐스팅하면 정수값을 반환하는데 이에 대한 경우의 수는 총 11가지(0, 1, 2, ... , 10)가 됩니다 :)