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

学习 时间:2026-04-04 20:04:13 阅读:2376
Random.nextInt()生成负数?为什么不是说Random.nextInt()生成的都是0-n的正整数么.在这个程序里我把随机数打印出来了,却是负数.这是为什么?

最佳回答

细心的嚓茶

活泼的天空

2026-04-04 20:04:13

如果调用。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位

最新回答共有2条回答

  • 忧虑的奇异果
    回复
    2026-04-04 20:04:13

    如果调用。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位

上一篇 文言文练习答案:螳螂捕蝉( 此三者皆务欲得其前利,而不顾其后之有患也.

下一篇 如何英语翻译:年轻是我们的资本,但是青春没有承诺?