我有一個關於Math.ceil()與Java中的Math.random()一起使用的問題,以便從1到x得到數字。Math.random()爲什麼不輸出0?
int number;
number = (int) (Math.ceil(0) * 1);
System.out.println("number generated was: " + number);
此代碼將返回0,如預期 - 0 * 0
int randomNumber;
do {
randomNumber = (int) Math.ceil(Math.random() * 1);
System.out.println("Random number generated was: " + randomNumber);
}while (randomNumber != 0);
那爲什麼這將始終返回1?我沒有得到它 - 當訪問Math.random()時,它會顯示:「返回大於或等於到{@code 0.0}且小於{1.0代碼}}的僞隨機{@code double}」
這應該仍然允許的情況下0 * 1.有人可以向我解釋這個嗎?
你的問題與Math.ceil()無關,只是用Math.random()做的。爲了避免混淆,你可以簡化這樣的問題 - >爲什麼Math.random()沒有輸出0? – RajatJ
從理論上講,0到1之間有無限的實數,所以隨機得到其中任何一個的概率實際上是0(當然在編程語言中,這是不正確的,但是這應該讓你明白爲什麼你可能會在該循環結束之前等待一段時間)。 – vefthym