Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成50%到150%之间的随机数_Java_Random_Range - Fatal编程技术网

Java 生成50%到150%之间的随机数

Java 生成50%到150%之间的随机数,java,random,range,Java,Random,Range,我有: 因为我想生成一个介于50%和150%之间的数字。然而,它给了我一个错误。如何使用随机函数获取该范围内的数字?您的问题是:您应该阅读javadoc。意思是:不要假设某个库方法做了什么;相反:阅读文档以验证您的假设是否正确 在这种情况下,请检查。。。并发现: 返回此随机数生成器序列中0.0和1.0之间的下一个伪随机、均匀分布的双精度值 关键是:没有接受双参数的方法nextDouble()!只有一个是没有任何争论的;默认情况下,该方法返回一个介于0和1之间的值 因此,只需更改代码,无需任何参数

我有:


因为我想生成一个介于50%和150%之间的数字。然而,它给了我一个错误。如何使用随机函数获取该范围内的数字?

您的问题是:您应该阅读javadoc。意思是:不要假设某个库方法做了什么;相反:阅读文档以验证您的假设是否正确

在这种情况下,请检查。。。并发现:

返回此随机数生成器序列中0.0和1.0之间的下一个伪随机、均匀分布的双精度值

关键是:没有接受双参数的方法nextDouble()!只有一个是没有任何争论的;默认情况下,该方法返回一个介于0和1之间的值


因此,只需更改代码,无需任何参数即可调用该方法

你可以做50%和100%

private Random rng = new Random();

double random = rng.nextDouble(1.5-0.5) + 0.5;
publicstaticvoidmain(最终字符串[]args){
随机rng=新随机();
double random=rng.nextDouble();

如果(随机,这是因为
nextDouble
不接收参数,只返回0.0到1.0之间的双精度。使用以下方法:

public static void main(final String[] args) {
    Random rng = new Random();
    double random = rng.nextDouble();

    if (random <= 0.5) {
        System.out.println("50% " + random);
    } else {
        System.out.println("100% " + random);
    }
}

如果您阅读ide中的错误或只是查看java文档,您将清楚地看到原因

Random类型中的方法nextDouble()不适用于 参数(双)

random类没有以double作为参数的方法
nextDouble()

顺便说一句,为什么不生成一个介于50和150之间的随机整数…这对您想要的实现更有意义

差不多

Random rng = new Random();

double max = 1.5;
double min = 0.5;
double random = rng.nextDouble(); // Double between 0.0 and 1.0

double percentage = random*(max-min) + min;
System.out.println(percentage);

“它向我抛出一个错误”不是一个有用的描述。请在您的问题中包含异常堆栈跟踪!如果您修复了错误,它可能会工作。欢迎使用堆栈溢出!请查看我们的帮助,以帮助您提出一个好问题,从而获得一个好答案。
Random rand = new Random();
randomNum = minimum + rand.nextInt((maximum - minimum) + 1);