definer('number', /** @exports number */ function(is) {
/**
* Модуль работы с числами.
*
* @class
*/
function number() {}
/**
* Получить случайное число.
*
* При вызове без аргументов возвращает
* случайное дробное число от 0 до 1.
*
* При вызове с указанием минимума и максимума
* возвращает дробное число из этого промежутка.
*
* При вызове со всеми тремя аргументами возвращает
* дробное число из заданного промежутка,
* делящееся без остатка на указанный шаг.
*
* @param {number} [min] Минимум
* @param {number} [max] Максимум
* @param {number} [step] Шаг
* @returns {number}
*/
number.random = function(min, max, step) {
if(is.undefined(min) && is.undefined(max)) {
return Math.random();
}
if(is.undefined(step)) {
return Math.random() * (max - min) + min;
}
return (Math.floor(Math.random() * (max - min) / step) * step) + min;
};
return number;
});