使int等于两个数字之间的值?

时间:2013-04-20 21:01:31

标签: javascript

说我有一个int = 30;。而不是只有一个int等于一个数字(如30),我如何使int =任何值介于30和80之间?谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

<div id="result"></div>

var min = 30;
var max = 80;

document.getElementById("result").textContent = Math.floor(Math.random() * (max - min + 1)) + min;

on jsfiddle

答案 1 :(得分:1)

JavaScipt

var x = Math.floor( Math.random()*(81-30) +30);

请参阅W3SchoolsMozilla Developer Network上的数学对象说明。

对此答案的评论表明,值Math.floor返回是“任意的”。但是,它是Number。参见ECMAScript 3 specification,“15.8.2.9 floor(x)”,第162页。根据相同的规范(“8.5数字类型”,第29页),数值是double-precision 64-bit format IEEE 754值。或者用普通程序员理解的词语:“双”或“浮动”类型。如果您手头有JavaScript: The Definitive Guide这本书,那么您可以阅读第31页(“3.1号码”)和前方的号码类型。

我的老答案以为你说过Java:

随机r = new Random();     int x = r.nextInt(81 - 30)+ 30;

Random API documentation

答案 2 :(得分:1)

function getInt(lo, hi) {
    var l = parseInt(lo);
    var h = parseInt(hi);
    return parseInt(Math.random() * (h - l)) + l;
}

function isBetween(x, lb, ub) {
    return x >= lb && x <= ub;
}

for (var i = 0; i < 10; i++) {
    var lo = 30, hi = 80
    var x = getInt(lo, hi);
    var b = isBetween(x, lo, hi);
    document.write(x + '-' + b + '<br/>');
}

Try it out.