Java中Math.random()的取值有关问题

Java中Math.random()的取值问题,求助public class Test {public static void main(String[] args) {System

Java中Math.random()的取值问题,求助
public class Test {

public static void main(String[] args) {
System.out.println(Math.random());
System.out.println((int) ((((Math.random()) * 11)) - 1));
}

}
运行结果为:
0.6056141990830389
4
为什么不是
0.6056141990830389
5呢?谢谢解答

[解决办法]
猜测下 可能是double精度问题。。java中double的数貌似是约等于的 不是精确的
还有概率貌似太小了点,0到1之间那么多小数。。。可想而知
纯属猜测 等大神
[解决办法]

Java code
public static void main(String[] args) {        while(true){            double randNum=Math.random();            System.out.println(randNum);            if(randNum==0)                break;        }    }