JAVA类型转换的就近原则(int)(Math.random()*100)与(int)Math.random()*100

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

想要输出【0,99】的随机整数,打印(int)Math.random()*100;
可是得到的结果却是0;

明明知道Math.random()等于[0,1)的double啊,为啥结果是0?
原来,(int)转换的时候,直接把0.xxxxxxx转换为整型,也就是0了,然后用0*100结果还会是0;

怎么解决呢?只需要加一个括号,将(int)作用的范围扩大便可.

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

采用(int)(Math.random()*100) ,这样结果就会是【0,100)的double取整数转换为INT,满足要求了就。

你可能感兴趣的:(java)