我有一个小函数,它允许接收一些必须是百分比值(0-100)的整数,并有机会了解它当前是否为真(roll):
function RollV (value) {
var rollvalue = Math.floor((Math.random() * 100) + 1),
result = true;
if (value >= rollvalue) {
result = true;
} else {
result = false;
}
return result;
}据我所知,这个函数不会返回true和value,因为随机rollvalue不能浮动,就像如果我想使用0.001%的机会,这不会被作为true传递,有什么方法可以用浮点数使数学随机吗?
JSFiddle:http://jsfiddle.net/7nbv2nrd/
发布于 2014-09-22 13:23:36
您可以使用以下代码:
(Math.random() * (upper_limit - lower_limit) + lower_limit).toFixed(3)更新
正如@Pointy所说,这将返回字符串,如果您希望它是浮动的,可以使用parseFloat(值)或.toFixed()
编辑
默认情况下,Math.random()结果是浮动的,如果您不想设置限制(假设您的ok值为0到1 ),请从代码中删除Math.floor
发布于 2014-09-22 13:34:06
这对我有用。
FIDDLE
function RollV(value) {
var rollvalue = Math.random();
$('.result').text(rollvalue);
return value >= rollvalue;
}
console.log(0.01,RollV(0.01));https://stackoverflow.com/questions/25975208
复制相似问题