日期:2014-05-20  浏览次数:20699 次

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;
        }
    }