Math.random()生成的是0.0~1.0的小数(不包括1.0哦),如果你想要的正好就是小数,那么直接乘以一个值就好了
例如:生成 [0.0,100.0) 的double数
但是大部分情况下,都是生成一个整数,所以这时候我们就要用到类型转换,将生成的double转换成int值。
注意是:
int a = (int)(Math.random() * 100);
这种方式是将生成的0~1先乘以100,再将这个数变成int
而不是:
int a = (int)Math.random() * 100;
这种方式是先将0~1.0转换成int类型,
可是0~1.0转换成int之后是0,再乘以100也还是0啊
对比:
获取指定范围的随机数:
(int)(Math.random()*(大-小+1) ) + 小
如:生成 36 ~ 79 之间的随机数
2、Random类(Math类是数学类,他还要完成很多数学 *** 作。可Random类专注于生成各种随机数,你说谁牛逼?)
如图,new一个Random的对象r,想生成随机数的时候调用r的方法就行了。
int a = r.nextInt(bound);
bound指的是生成随机数的范围:[0,bount)
生成指定范围的随机数:
r.nextInt(大-小+1)+小;
如:生成 36 ~ 79之间的随机数
r.nextInt(79-36+1)+36;
可以看到,这个类是没有直接生成字符的方法的。这时候就需要生一个整数,再强转为char
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)