-1

快速提问。

为什么nextDouble可以接受

1 + ( 900 - 1) * random.nextDouble()

但是当我尝试将其设置为

random.nextDouble((900 - 1) + 1) + 1);

它告诉我 nextDouble 不适用于 int 类型

当然第一个是 int 并且它接受吗?

对不起,如果这是一个愚蠢的问题。

4

3 回答 3

7

该类RandomnextDouble方法不接受任何参数,因此第二次调用不会编译。

于 2013-10-30T21:24:27.243 回答
0

因为 Java Random不会像整数一样公开nextDouble()接受上限的重载版本。nextInt(int n)

我会推荐 Apache Commons Math RandomDataGenerator

RandomDataGenerator rdg = new RandomDataGenerator();
rdg.nextUniform(1.0, 900.0, true);

或者,您可以子类Random化并实现您自己的nextDouble.

于 2013-10-30T21:25:43.670 回答
0

random.nextDouble((900 - 1) + 1) + 1);想一想。这是一个带参数的方法调用,(900 - 1) + 1) + 1nextDouble ()不接受任何参数,因此您的错误。opening brace顺便说一句,您在第二次通话中也缺少一个。

于 2013-10-30T21:26:10.757 回答