NextDouble Method

# Random::NextDouble Method ()

.NET Framework (current version)

Returns a random floating-point number that is greater than or equal to 0.0, and less than 1.0.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

## Syntax

```public:
virtual double NextDouble()
```

#### Return Value

Type: System::Double

A double-precision floating point number that is greater than or equal to 0.0, and less than 1.0.

## Remarks

The actual upper bound of the random number returned by this method is 0.99999999999999978.

To retrieve random floating-point values within a range other than 0.0 and 1.0, see the "Retrieve floating-point values in a specified range" section of the Random class topic.

This method is the public version of the protected method, Sample.

## Examples

The following example uses the NextDouble method to generate sequences of random doubles.

```// Example of the Random class constructors and Random::NextDouble( )
// method.
using namespace System;

// Generate random numbers from the specified Random object.
void RunIntNDoubleRandoms( Random^ randObj )
{

// Generate the first six random integers.
for ( int j = 0; j < 6; j++ )
Console::Write( " {0,10} ", randObj->Next() );
Console::WriteLine();

// Generate the first six random doubles.
for ( int j = 0; j < 6; j++ )
Console::Write( " {0:F8} ", randObj->NextDouble() );
Console::WriteLine();
}

// Create a Random object with the specified seed.
void FixedSeedRandoms( int seed )
{
Console::WriteLine( "\nRandom numbers from a Random object with seed = {0}:", seed );
Random^ fixRand = gcnew Random( seed );
RunIntNDoubleRandoms( fixRand );
}

// Create a random object with a timer-generated seed.
void AutoSeedRandoms()
{

// Wait to allow the timer to advance.
Console::WriteLine( "\nRandom numbers from a Random object "
"with an auto-generated seed:" );
Random^ autoRand = gcnew Random;
RunIntNDoubleRandoms( autoRand );
}

int main()
{
Console::WriteLine( "This example of the Random class constructors and Random"
"::NextDouble( ) \ngenerates the following output.\n" );
Console::WriteLine( "Create Random objects, and then generate and "
"display six integers and \nsix doubles from each." );
FixedSeedRandoms( 123 );
FixedSeedRandoms( 123 );
FixedSeedRandoms( 456 );
FixedSeedRandoms( 456 );
AutoSeedRandoms();
AutoSeedRandoms();
AutoSeedRandoms();
}

/*
This example of the Random class constructors and Random::NextDouble( )
generates the following output.

Create Random objects, and then generate and display six integers and
six doubles from each.

Random numbers from a Random object with seed = 123:
2114319875  1949518561  1596751841  1742987178  1586516133   103755708
0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146

Random numbers from a Random object with seed = 123:
2114319875  1949518561  1596751841  1742987178  1586516133   103755708
0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146

Random numbers from a Random object with seed = 456:
2044805024  1323311594  1087799997  1907260840   179380355   120870348
0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170

Random numbers from a Random object with seed = 456:
2044805024  1323311594  1087799997  1907260840   179380355   120870348
0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170

Random numbers from a Random object with an auto-generated seed:
1624372556  1894939458   302472229   588108304    23919954  1085111949
0.14595512  0.30162298  0.92267372  0.55707657  0.25430079  0.74143239

Random numbers from a Random object with an auto-generated seed:
2105952511  1753605347   280739490   876793040  1129567796   524571616
0.62652210  0.31846701  0.15984073  0.24458755  0.62160607  0.54857684

Random numbers from a Random object with an auto-generated seed:
440048819  1612271236   259006751  1165477776    87731991  2111514930
0.10708907  0.33531104  0.39700773  0.93209853  0.98891135  0.35572129
*/
```

The following example calls the NextDouble method to generate 100 random numbers and displays their frequency distribution.

No code example is currently available or this language may not be supported.

## Version Information

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1