Random.nextInt()生成负数?为什么

问题描述:

Random.nextInt()生成负数?为什么
不是说Random.nextInt()生成的都是0-n的正整数么.在这个程序里我把随机数打印出来了,却是负数.这是为什么?

如果调用.nextInt(),-MaxValue到MaxValue,.nextInt(n)才是0到n.下面是JAVA API的原段nextInt()Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence....我之前好像在百科还是哪里看到,说nextInt生成的是正整数啊。如果是从负无穷到正无穷,为什么还有那么多人问如何生成负随机数。因为nextint(n)只能是0到n,此处n必须为正整数,如果为负则报错。但如果你想它也能生成负数的话,直接int value=-rand.nextInt(30);即可表示生成的是-30到0的也就是说如果,在括号里面不加东西就能生成负无穷到正无穷的数了?还有nextDouble是不是也一样的啊?是的,里面不加东西就会生成负数,JAVA里Int是32位的,范围是-2^31 ~ (2^31 - 1)。而nextDouble是0到1之间的浮点数,64位