はここに私のコードである少数のために中断します。これは、1〜10または50〜100のような範囲のために正常に動作しますが、私はそうのような少数しようとすると:乱数生成器は、
randomNumber(0.01,0.05,5)
を私は0.27335と1.04333のような悪い結果が得られます。
はここに私のコードである少数のために中断します。これは、1〜10または50〜100のような範囲のために正常に動作しますが、私はそうのような少数しようとすると:乱数生成器は、
randomNumber(0.01,0.05,5)
を私は0.27335と1.04333のような悪い結果が得られます。
あなたの計算には消極的です。 +1なしto-from
次のようになります。次のように
var randomNumber = function (from, to, dec) {
var num = Math.random() * (to - from +1) + from;
var result = Math.round(num * Math.pow(10, dec))/Math.pow(10, dec);
return result;
};
あなたのコードは次のようになります。
var randomNumber = function (from, to, dec) {
var num = Math.random() * (to - from) + from;
var result = Math.round(num * Math.pow(10, dec))/Math.pow(10, dec);
return result;
};
実際に、それはさらに次のようにresult
変数を省略することにより短縮することができます。
var randomNumber = function (from, to, dec) {
var num = Math.random() * (to - from) + from; //Generate a random float
return Math.round(num * Math.pow(10, dec))/Math.pow(10, dec); //Round it to <dec> digits. Return.
};
Works!ありがとうございました。 – mustacheMcGee
var randomNumber = function(from,to,dec)
{
var num = Math.random()*(to-from)+from;
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}
なぜ丸められませんか? –
私はこれが 'var num = Math.random(from * from + 1)+ from;'が 'var num = Math.random()*(to-from)+ from; 'でなければならないと思います – Yoshi