-4

假设我有一个 int = 30;。我将如何使 int = 30 到 80 之间的任何值而不是仅仅让 int 等于一个数字(如 30)?谢谢您的帮助。

4

3 回答 3

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

var min = 30;
var max = 80;

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

jsfiddle上

于 2013-04-20T21:14:06.027 回答
1

JavaScipt中:

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

请参阅W3SchoolsMozilla Developer Network上的数学对象描述。

对此答案的评论表明,价值Math.floor回报是“任意的”。然而,它是一个Number. 请参阅ECMAScript 3 规范,“15.8.2.9 floor(x)”,第 162 页。并且根据相同的规范(“8.5 The Number Type”,第 29 页),数字值是一个double-precision 64-bit format IEEE 754值。或者用普通程序员理解的话来说:“double”或“float”类型。如果您手头有JavaScript: The Definitive Guide一书,那么您可以从第 31 页(“3.1 数字”)和转发中阅读有关数字类型的信息。

我的旧答案以为您说的是 Java:

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

请参阅随机 API 文档

于 2013-04-20T21:06:56.900 回答
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/>');
}

试试看。

于 2013-04-20T21:19:20.140 回答