public static double NextDouble(
this Random random,
double maxValue,
FloatScale scale = FloatScale.Auto
)
<ExtensionAttribute>
Public Shared Function NextDouble (
random As Random,
maxValue As Double,
Optional scale As FloatScale = FloatScale.Auto
) As Double
public:
[ExtensionAttribute]
static double NextDouble(
Random^ random,
double maxValue,
FloatScale scale = FloatScale::Auto
)
[<ExtensionAttribute>]
static member NextDouble :
random : Random *
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 using very small ranges close to the limits of Double.
If scale is Auto, then the ForceLinear option is used if maxValue is less than or equal to 65535. For larger range 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 0.0
-or- scale is not a valid value of FloatScale. |