2015-11-06 50 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