nextDouble不允许使用int类型

时间:2013-10-30 21:22:54

标签: java random

快速提问。

为什么nextDouble可以接受

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

但是当我尝试将其设置为

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

它告诉我nextDouble不适用于int

类型

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

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

3 个答案:

答案 0 :(得分:7)

Random class's nextDouble method不接受任何参数,因此第二次调用不会编译。

答案 1 :(得分:0)

因为Java Random没有公开nextDouble()的重载版本,它接受像nextInt(int n)这样的上限为整数做的。

我会推荐Apache Commons Math RandomDataGenerator

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

或者您可以继承Random并实现自己的nextDouble重载版本。

答案 2 :(得分:0)

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