得到一个从100到999的随机数
这个问题在这里已经有了答案:
有一个更好的方法来获得随机数字,这是与java.util.Random
。 Math.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
。 这里random
是Random
一个实例。
在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