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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘佳 中级黑马   /  2012-9-5 15:52  /  1619 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘佳 于 2012-9-5 19:36 编辑

class MathDemo
{
public static void main(String[] args)
{
  for (int x = 0; x<10; x++)
  {
   double d = Math.random();
   System.out.println(d);
  }
}
}
打印出来的随机数为何都是零点几呢,而且长度也不一样呢?
0.022477275137117614
0.29096203630192685
0.2527930596110869
0.4572581200704846
0.8504681536178457
0.153822991619748
0.36556733651905826
0.4113254332307399
0.4158753410455025
0.6207439696978868

点评

建议多看下API吧!  发表于 2012-9-5 21:11

6 个回复

倒序浏览
Math.random();得到的随机数是介于0和1之间的浮点数。数学都学过区间,这个0到1 用区间表示:[0,1),是一个左闭右开的区间
回复 使用道具 举报
Math.random()方法返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

如果希望得到更大范围的随机数,可以将Math.random()方法返回的double值乘以一定的倍数

既然是随机数,当然小数点后面的位数也会不同
回复 使用道具 举报
舒远 发表于 2012-9-5 15:58
Math.random();得到的随机数是介于0和1之间的浮点数。数学都学过区间,这个0到1 用区间表示:[0,1),是一个 ...

哦,对,忽略了该方法返回的是带正号的 double 值了,该值大于等于 0.0 且小于 1.0。
但为何每次数字的长度不同呢,不应该只是每次的数字不同而已吗?
回复 使用道具 举报
public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

回复 使用道具 举报
public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同

new java.util.Random之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。
此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。


返回:
大于等于 0.0 且小于 1.0 的伪随机 double 值。
哥们  当你迷惑不解的时候别忘了看API,再牛的牛人也得看API
回复 使用道具 举报
杨鹏鹏 发表于 2012-9-5 17:01
public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机 ...

哈哈,是该多看看API,多谢提醒!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马