得到一个从100到999的随机数

这个问题在这里已经有了答案:

  • 如何在Java中的特定范围内生成随机整数? 57个答案

  • 有一个更好的方法来获得随机数字,这是与java.util.RandomMath.random()返回一个double(浮点)值,但是根据你的一个3位数的请求,我会假设你真正想要的是一个整数。 所以这就是你所做的。

    // initialize a Random object somewhere; you should only need one
    Random random = new Random();
    
    // generate a random integer from 0 to 899, then add 100
    int x = random.nextInt(900) + 100;
    

    Math.random()返回0.0 (包括)和1.0 (不包括)之间的值,假设它返回0.05013371.. (例如)比您的方法执行以下操作,

    0.05013371.. * 100000 = 5013.371...
    (int) 5013.371... = 5013
    5013 % 1000 = 13 // Incorrect
    

    但是其他方式仍然可以以不同的方式使用Math.random()来解决此问题,

    int upperBound = 999;
    int lowerBound = 100;
    int number = lowerBound + (int)(Math.random() * ((upperBound - lowerBound) + 1));
    

    说明,

    100 + (int)((Number >= 0.0 and  < 1.0) * (999 - 100)) + 1;
    100 + (int)((Number >= 0.0 and  < 1.0) * (899)) + 1;
    

    MIN这可以返回,

    100 + (int)(0.0 * (899)) + 1;
    100 + 0 + 1
    101
    

    MAX这可以返回,

    100 + (int)(0.9999.. * (899)) + 1;
    100 + 898 + 1 
    999
    

    注意:您可以相应地更改上限和下限以获得所需的结果。


    你不正确。 这可以产生100数字。 最熟悉的方式是random.nextInt(900)+100 。 这里randomRandom一个实例。

    在Java 7之前,没有理由在您的应用程序中为此目的创建多个Random实例。 现在没有理由有最好的办法了

    int value = ThreadLocalRandom.current().nextInt(100, 1000);
    
    链接地址: http://www.djcxy.com/p/17677.html

    上一篇: gettting a random number from 100 to 999

    下一篇: Generate a random integer with a specified number of digits Java