2

この関数を使用して、ランダムな int 値を生成しています:

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

それは完全に機能しますが、疑問に思います...なぜjavascriptにrandomIntとrandomFloatがないのですか?

4

2 に答える 2

13

JavaScript にはNumber64 ビット float の型があります。Integerタイプ自体はありません。それ自体で、すでに64ビットの浮動小数点数でMath.randomある random が得られます。Numberが存在できない理由がわかりませんMath.randomInt(内部的に、値を切り捨てる、フロアにする、または天井にすることができます)。言語にそれがない理由については、良い答えはありません。ブレンダン・アイヒに聞く必要があります。Math.ceilただし、またはを使用して必要なものをエミュレートできますMath.floor。これは実際には型ごとではありませんが、それでも型である整数を返します。IntegerNumber

于 2013-09-11T17:30:48.263 に答える
2

Javascript にはこれらの型がないためです。純粋な JavaScript にはジェネリックnumber型しかありません。

Javascript の種類の詳細については、こちらこちらをご覧ください。

この質問も調べてみてください: JavaScript の整数

マークされた答えは言います、そして私は引用します:

Javascript のデータ型は、オブジェクト、数値、および文字列だけです。ご覧のとおり、JS の数値はすべて 64 ビット浮動小数点数です。int はありません。

于 2013-09-11T17:24:48.103 に答える