你如何使用math.random生成随机整数?
你如何使用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()
:
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”中的exceptionjava.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 ……等)
您也可以使用这种方式获取1到100之间的随机数:
SecureRandom src=new SecureRandom(); int random=1 + src.nextInt(100);
您正在导入java.util
包。 这就是它给出错误的原因。 java.util
包中也有一个random()
。 请删除导入java.util
包的import语句。 然后你的程序将默认使用java.lang
的random()
方法然后你的程序将工作。 记得施展它,即
int x = (int)(Math.random()*100);
double i = 2+Math.random()*100; int j = (int)i; System.out.print(j);