你如何使用math.random生成随机整数?

时间:2011-12-22 22:54:17

标签: java random

如何使用Math.random生成随机整数?

我的代码是:

int abc= (Math.random()*100);
System.out.println(abc);

打印出的全部是0,我该如何解决这个问题?

7 个答案:

答案 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);