document.write(
Math.floor(
Math.random() * (3+1)
)
);
这里为什么会输出0-3的值呢?
我的理解是这样的:先计算括号3+1=4; 然后Math.random(),比如:0.544848541584  ,因为它永远不可能>=1的
0.544848541584 * 4 应该等于0啊.为什么是随即0-3的呢?

解决方案 »

  1.   

    floor 方法
    返回小于等于其数值参数的最大整数。 
    Math.floor(number)random 方法
    返回介于 0 和 1 之间的伪随机数。
    Math.random( )
    Web 开发常用手册DHTML 参考手册
    http://download.csdn.net/source/308913JScript 语言参考 -- 这里都有
    http://download.csdn.net/source/308916CCS 样式表中文手册
    http://download.csdn.net/source/304124
      

  2.   

    0.544848541584 * 4 = 2.XXX啊
    怎么会是0呢你的理解没问题
    但是你的计算粗心了
      

  3.   

    明显LZ眼花了令 r = Math.random() 
    因为
        0 < r < 1
    所以
        0< 4*r < 4最后就是Math.floor()
    相当于 
        ( 4 * r + 0.5 )取整数部分.
    就是 0-3 了