public static double NextDouble(
this Random random,
double minValue,
double maxValue,
FloatScale scale = FloatScale.Auto
)
<ExtensionAttribute>
Public Shared Function NextDouble (
random As Random,
minValue As Double,
maxValue As Double,
Optional scale As FloatScale = FloatScale.Auto
) As Double
public:
[ExtensionAttribute]
static double NextDouble(
Random^ random,
double minValue,
double maxValue,
FloatScale scale = FloatScale::Auto
)
[<ExtensionAttribute>]
static member NextDouble :
random : Random *
minValue : float *
maxValue : float *
?scale : FloatScale
(* Defaults:
let _scale = defaultArg scale FloatScale.Auto
*)
-> float
In most cases return value is less than maxValue. Return value can be equal to maxValue in very edge cases such as when minValue is equal to maxValue or when integer parts of both limits are beyond the precision of the Double type.
If scale is Auto, then the ForceLinear option is used if the absolute value of both minValue and maxValue are less than or equal to 65535, or when they have the same sign and the absolute value of maxValue is less than 16 times greater than the absolute value of minValue. For larger ranges the ForceLogarithmic option is used.
Generating random numbers by this method on the logarithmic scale is about 3 times slower than on the linear scale.
ArgumentNullException | random is . |
ArgumentOutOfRangeException | maxValue is less than minValue -or- scale is not a valid value of FloatScale. |