[英]How do you use math.random to generate random ints?
你如何使用 Math.random 生成隨機整數?
我的代碼是:
int abc= (Math.random()*100);
System.out.println(abc);
它打印出來的都是0,我該如何解決這個問題?
將 abc 轉換為整數。
(int)(Math.random()*100);
要編譯您的代碼,您需要將結果轉換為 int。
int abc = (int) (Math.random() * 100);
但是,如果您改為使用java.util.Random類,它已為您內置方法
Random random = new Random();
int abc = random.nextInt(100);
作為替代方案,如果沒有使用Math.random()
的特定原因,請使用Random.nextInt()
:
import java.util.Random;
Random rnd = new Random();
int abc = rnd.nextInt(100); // +1 if you want 1-100, otherwise will be 0-99.
int abc= (Math.random()*100);// wrong
您將收到以下錯誤消息
線程“main”中的異常java.lang.Error:未解決的編譯問題:類型不匹配:無法從double轉換為int
int abc= (int) (Math.random()*100);// add "(int)" data type
,稱為類型轉換
如果真正的結果是
int abc= (int) (Math.random()*1)=0.027475
然后您將得到輸出為“0”,因為它是整數數據類型。
int abc= (int) (Math.random()*100)=0.02745
輸出:2 因為(100*0.02745=2.7456...等)
您正在導入java.util
包。 這就是為什么它給出錯誤。 java.util
包中也有一個random()
。 請刪除導入java.util
包的 import 語句。 那么你的程序將默認使用java.lang
的random()
方法,然后你的程序就可以工作了。 記得投它即
int x = (int)(Math.random()*100);
您還可以使用這種方式獲取 1 到 100 之間的隨機數,如下所示:
SecureRandom src=new SecureRandom();
int random=1 + src.nextInt(100);
double i = 2+Math.random()*100;
int j = (int)i;
System.out.print(j);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.