[js] 乱数の取得

Pocket

小数点を含む乱数を取得。
乱数の精度はあまりよくないかも。
※モジュールに変更しました(2012/3/22)

WINDOW_APP.util.numberUtil = (function () {
 
	/**
	 * 乱数を取得
	 *
	 * @param max {Number} 乱数の最大値
	 * @param [min = 0] {Number} 乱数の最小値
	 * @param [decimal = 0] {uint} 小数点の桁数
	 */
	function random(max, min, decimal) {
		var
			decimalPoint,   //小数点のべき乗
			minimum,
			rnd,
			result;	//minがマイナスのときは繰り上げの処理をきりかえ
 
		if(max <= min) {
			return false;
		}
 
		decimalPoint = Math.pow(10, (decimal > 0) ? decimal : 0);   //小数点のべき乗
		minimum = min || 0;
		rnd = (Math.random() * (max * decimalPoint - minimum * decimalPoint + 1)) + minimum * decimalPoint;
		result = (rnd > 0) ? rnd | 0 : rnd - 1 | 0;	//Math.floor() or Math.ceil()
 
		return result / decimalPoint;
	}
 
	//public
	return {
		random: random
	}
}());
 
//example
console.log(WINDOW_APP.util.numberUtil.random(10));	//0~10
console.log(WINDOW_APP.util.numberUtil.random(10, 5));	//5~10
console.log(WINDOW_APP.util.numberUtil.random(10, 0, 2));	//0~10.00
console.log(WINDOW_APP.util.numberUtil.random(-10, -20, 2));	//-20.00~-10.00

ソース:

random.js
random.min.js(圧縮版)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です