2

我正在使用此函数生成随机 int 值:

var r = function(min, max){
  return Math.floor(Math.random() * (max - min + 1)) + min;
};

它完美地工作,但让我想知道......为什么javascript中没有randomInt和randomFloat?

4

2 回答 2

13

JavaScript 有Number一个 64 位浮点类型;Integer本身没有类型。Math.random本身给你一个 random Number,它已经是一个 64 位浮点数。我不明白为什么不能有 a Math.randomInt(在内部它可以截断、下限或上限值)。关于为什么语言没有它没有很好的答案;您将不得不问Brendan EichMath.ceil但是,您可以使用或模拟您想要的内容Math.floor。这会给你一个整数,这不是一个真正的Integer类型,但仍然是一个Number类型。

于 2013-09-11T17:30:48.263 回答
2

因为 Javascript 没有这些类型。纯 javascript 只有一个泛型number类型。

更多关于 Javascript 类型的信息可以在这里这里找到。

您可能还想研究这个问题:JavaScript 中的整数

标记的答案说,我引用:

Javascript 中实际上只有几种数据类型:对象、数字和字符串。如您所见,JS 数字都是 64 位浮点数。没有整数。

于 2013-09-11T17:24:48.103 回答