Math.Random()会随机生成[0,1)之间的随机数,一般情况下大家让Math.Random()乘以一个数,例如a。这样我们就可以生成[0,a)之间的随机数,如果再在前面添加一个int,那么我们就可以产生[0,a)之间的正整数,但是往往由于粗心我们就出犯下如下错误,实验代码如下:
package anomalydetection;
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
for(int i=0;i<10;i++){
System.out.println((int) Math.random()*6276);
}
}
}
实验结果如下:
0
0
0
0
0
0
0
0
0
0
另一次实验,记得查看不同
package anomalydetection;
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
for(int i=0;i<10;i++){
System.out.println((int) (Math.random()*6276));
}
}
}
实验结果如下:
2641
2197
713
381
2640
2623
3525
508
1811
3729
这是因为int的优先级大于*号因此会出现此错误。