课程
/后端开发
/Java
/Java入门第三季
为什么十以内的随机数(int)(Math.random() * 10)要这样写,怎么不能是Math.random() * 10
2017-07-01
源自:Java入门第三季 3-8
正在回答
因为Math.random()出来的数据是double型,需要用int进行强制转换。先用Math.random乘以10,然后用int去掉小数点后面的数据,这样得到的数据就是整型了。
慕粉4207816 提问者
这是因为(int)强制转换在前,程序先执行转换后,再*10,结果是,选随机生成0-1之前的确双精数,再强制转换为0,再0*10,随机生成的10个数都为0。故必须为:
(int)(Math.random() * 10)
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
2 回答为什么:int x = (int)(Math.random()*10);去掉两个括号变成:int x = (int)Math.random()*10;后,编译没错,但结果全是0呢?
3 回答为什么用for(int i =0;i<=(int)(Math.random()*10);i++)方法来获取字符串的长度最多只能9位,提前变量赋值随机数却可以得到10位
1 回答十以内不重复随机数
2 回答QAQ为什么我的Math.random()不能直接用啊
3 回答为什么这里要new一个Random对象而不用Math.random?