A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝枫 中级黑马   /  2014-3-28 13:41  /  832 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class MathDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for(int x= 0;x<10;x++)
  6.                 {
  7.                         int d = (int)(Math.random()*10+1);
  8.                         sop(d);
  9.                 }
  10.     }
  11.     public static void sop(Object obj)
  12.         {
  13.                 System.out.println(obj);
  14.         }
  15. }
  16. 为什么 Math.random()*10+1 就变成了1-10的随机数,不明白!求解释!
复制代码

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 恭喜楼主!!!

查看全部评分

2 个回复

倒序浏览
java.lang
类 Math
static double random()
          返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
相当于  0.0<= random()<1.0
random() *10+1  不就是  1.0<= random()* 10+1<11.0  
强转成int类型 不就是1~10的整数了吗

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

回复 使用道具 举报
Math.random()  返回大于等于 0.0 且小于 1.0 的伪随机 double 值。
(int)Math.random()*10的取值范围在0--9,再加上1就是0--10之间
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马