關于math.random()的問題
今天在寫一個關于隨機數的小程序時,在程序執行時,發現隨機數不能執行隨機,隨機結果始終為1。
下面貼上一開始錯誤的代碼
int i = (int)Math.random()*3+1;
無論運行多少次,結果均為1。
原因:該行代碼的運行時先執行Math.random()方法,然后執行int類型轉換,而該方法的結果是生成0-1之間的double類型,因此,其在轉換后只能是0,最后,在執行全部運算(0*3+1),結果始終為1。
正確代碼:
int i = (int)(Math.random()*3+1);

浙公網安備 33010602011771號