使用浮点值创建math.random

时间:2014-09-22 13:20:41

标签: javascript floating-point

我有一个小函数,允许接收一些必须是百分比值(0-100)的整数,并且有机会了解它是否正确(滚动):

function RollV (value) {
        var rollvalue = Math.floor((Math.random() * 100) + 1),
        result = true;
        if (value >= rollvalue) {
            result = true;
        } else {
            result = false;
        }
        return result;
    }

根据我的理解,这个func不会返回true浮动value,因为随机rollvalue不能浮动,就像我想要使用0.001%的几率一样不会以true传递,是否有任何方法可以使用浮点值使数学随机化?

JSFiddle:http://jsfiddle.net/7nbv2nrd/

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码:

 (Math.random() * (upper_limit - lower_limit) + lower_limit).toFixed(3)

<强>更新

正如@Pointy所说,这将返回字符串,如果你希望它是浮点数你可以使用parseFloat(value)或.toFixed()

修改

默认情况下,

Math.random()结果为浮动状态,如果您不想设置限制(让我们用0到1的值表示您的确定),请删除Math.floor来自你的代码

答案 1 :(得分:1)

这适合我。

FIDDLE

function RollV(value) {
    var rollvalue = Math.random();
    $('.result').text(rollvalue);
    return value >= rollvalue;
}

console.log(0.01,RollV(0.01));