1 var baseRandom = require(
'./_baseRandom'),
2 isIterateeCall = require(
'./_isIterateeCall'),
3 toFinite = require(
'./toFinite');
6 var freeParseFloat = parseFloat;
9 var nativeMin = Math.min,
10 nativeRandom = Math.random;
43 function random(lower, upper, floating) {
44 if (floating && typeof floating !=
'boolean' && isIterateeCall(lower, upper, floating)) {
45 upper = floating = undefined;
47 if (floating === undefined) {
48 if (typeof upper ==
'boolean') {
52 else if (typeof lower ==
'boolean') {
57 if (lower === undefined && upper === undefined) {
62 lower = toFinite(lower);
63 if (upper === undefined) {
67 upper = toFinite(upper);
75 if (floating || lower % 1 || upper % 1) {
76 var rand = nativeRandom();
77 return nativeMin(lower + (rand * (upper - lower + freeParseFloat(
'1e-' + ((rand +
'').length - 1)))), upper);
79 return baseRandom(lower, upper);
82 module.exports = random;