public static float NextSingle(
this Random random,
float minValue,
float maxValue,
FloatScale scale = FloatScale.Auto
)
<ExtensionAttribute>
Public Shared Function NextSingle (
random As Random,
minValue As Single,
maxValue As Single,
Optional scale As FloatScale = FloatScale.Auto
) As Single
public:
[ExtensionAttribute]
static float NextSingle(
Random^ random,
float minValue,
float maxValue,
FloatScale scale = FloatScale::Auto
)
[<ExtensionAttribute>]
static member NextSingle :
random : Random *
minValue : float32 *
maxValue : float32 *
?scale : FloatScale
(* Defaults:
let _scale = defaultArg scale FloatScale.Auto
*)
-> float32
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 Single 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. |