2015-11-06 88 views
0

如何设置这些值使用随机到0到100之间的随机十进制数?如何使用随机库?

xPos = Math.round((Math.random() * 100) * 10)/10; 
yPos = Math.round((Math.random() * 100) * 10)/10; 

我试图设置的值XPOS和yPos随机小数0和100

+0

检查[Java生成两个给定值之间的随机数](http://stackoverflow.com/questions/5271598/java-generate-random -number-between-two-given-values) – sam

+3

你的问题到底是什么?为什么不制作Random的实例并使用['nextInt(int bound)]](https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#nextInt -int-)方法? – mkobit

+0

http://stackoverflow.com/questions/7961788/math-random-explained – jwde

回答

2

之间尝试这种情况:

Random rand = new Random(); 
double xPos = rand.nextDouble() * 100; 
double yPos = rand.nextDouble() * 100; 

nextDouble docs

-1

为了产生从一个任意十进制[ 0-100),您可以使用Math.random(),因为您已经可以使用它,也可以使用Random对象

待办事项由[0-100),代码返回数字的这些位从0到,但不包括100


的Math.random():

double xPos = Math.random() * 100; 
double yPos = Math.random() * 100; 

的Math.random ()用1个小数位:

double xPos = Math.floor(Math.random() * 1000)/10; 
double yPos = Math.floor(Math.random() * 1000)/10; 

Random对象:

Random r = new Random(); 
double xPos = r.nextDouble() * 100; 
double yPos = r.nextDouble() * 100; 

与1位小数随机对象:

Random r = new Random(); 
double xPos = r.nextInt(1000)/10.0; 
double yPos = r.nextInt(1000)/10.0; 

它被认为是更好的做法是使用Random对象,即使Math.random()调用它自己的内部Random对象。

使用Random而不是Math.random()确实具有更简单的并发性。如果没有多个Random对象,多线程随机使用的大量使用将放慢搜索速度

+0

你怎么也围绕随机()? –

+0

@kaanmote你需要四舍五入吗?我已经包含一个小数位的答案,您可以缩放到两个或更多。你需要轮到最近的一半吗?最近的int? – phflack

+0

downvote没有解释?一个人不说如何帮助别人改善 – phflack