假设我有一个 int = 30;。我将如何使 int = 30 到 80 之间的任何值而不是仅仅让 int 等于一个数字(如 30)?谢谢您的帮助。
问问题
132 次
3 回答
2
<div id="result"></div>
var min = 30;
var max = 80;
document.getElementById("result").textContent = Math.floor(Math.random() * (max - min + 1)) + min;
于 2013-04-20T21:14:06.027 回答
1
在JavaScipt中:
var x = Math.floor( Math.random()*(81-30) +30);
请参阅W3Schools和Mozilla 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 回答