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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘佳 中级黑马   /  2012-9-5 15:52  /  1643 人查看  /  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 个回复

正序浏览
杨鹏鹏 发表于 2012-9-5 17:01
public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机 ...

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

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


返回:
大于等于 0.0 且小于 1.0 的伪随机 double 值。
哥们  当你迷惑不解的时候别忘了看API,再牛的牛人也得看API
回复 使用道具 举报
public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

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

哦,对,忽略了该方法返回的是带正号的 double 值了,该值大于等于 0.0 且小于 1.0。
但为何每次数字的长度不同呢,不应该只是每次的数字不同而已吗?
回复 使用道具 举报
Math.random()方法返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

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

既然是随机数,当然小数点后面的位数也会不同
回复 使用道具 举报
Math.random();得到的随机数是介于0和1之间的浮点数。数学都学过区间,这个0到1 用区间表示:[0,1),是一个左闭右开的区间
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马