如何使用Math.random生成随机整数?
我的代码是:
int abc= (Math.random()*100);
System.out.println(abc);
打印出的全部是0,我该如何解决这个问题?
答案 0 :(得分:24)
将abc转换为整数。
(int)(Math.random()*100);
答案 1 :(得分:19)
要编译代码,需要将结果转换为int。
int abc = (int) (Math.random() * 100);
但是,如果您改为使用 java.util.Random 类,它已为您构建了内置方法
Random random = new Random();
int abc = random.nextInt(100);
答案 2 :(得分:11)
作为替代方案,如果没有特定原因可以使用Math.random()
,请使用Random.nextInt()
:
Random rnd = new Random();
int abc = rnd.nextInt(100); // +1 if you want 1-100, otherwise will be 0-99.
答案 3 :(得分:0)
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 ......等)
答案 4 :(得分:0)
你也可以用这种方式获得1到100之间的随机数:
SecureRandom src=new SecureRandom();
int random=1 + src.nextInt(100);
答案 5 :(得分:0)
您正在导入java.util
个包裹。这就是它给出错误的原因。 random()
包中也有一个java.util
。请删除导入语句导入java.util
包。那么您的程序默认使用random()
方法java.lang
,然后您的程序就可以运行。记得施展它,即
int x = (int)(Math.random()*100);
答案 6 :(得分:-3)
double i = 2+Math.random()*100;
int j = (int)i;
System.out.print(j);