public static decimal NextDecimal(
this Random random,
decimal maxValue,
FloatScale scale = FloatScale.Auto
)
<ExtensionAttribute>
Public Shared Function NextDecimal (
random As Random,
maxValue As Decimal,
Optional scale As FloatScale = FloatScale.Auto
) As Decimal
public:
[ExtensionAttribute]
static Decimal NextDecimal(
Random^ random,
Decimal maxValue,
FloatScale scale = FloatScale::Auto
)
[<ExtensionAttribute>]
static member NextDecimal :
random : Random *
maxValue : decimal *
?scale : FloatScale
(* Defaults:
let _scale = defaultArg scale FloatScale.Auto
*)
-> decimal
In most cases return value is less than maxValue. Return value can be equal to maxValue in very edge cases, such as when maxValue is near Epsilon.
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 25-50 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. |