Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

BinaryReader::ReadDouble Method ()


Reads an 8-byte floating point value from the current stream and advances the current position of the stream by eight bytes.

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

virtual double ReadDouble()

Return Value

Type: System::Double

An 8-byte floating point value read from the current stream.

Exception Condition

The end of the stream is reached.


The stream is closed.


An I/O error occurs.

BinaryReader does not restore the file position after an unsuccessful read.

BinaryReader reads this data type in little-endian format.

For a list of common I/O tasks, see Common I-O Tasks.

The following code example shows how to read and write Double data to memory by using the BinaryReader and BinaryWriter classes on top of the MemoryStream class. MemoryStream only reads and writes Byte data.

using namespace System;
using namespace System::IO;
int main()
   int i;
   const int arrayLength = 1000;

   // Create random data to write to the stream.
   array<double>^dataArray = gcnew array<double>(arrayLength);
   Random^ randomGenerator = gcnew Random;
   for ( i = 0; i < arrayLength; i++ )
      dataArray[ i ] = 100.1 * randomGenerator->NextDouble();

   BinaryWriter^ binWriter = gcnew BinaryWriter( gcnew MemoryStream );

      // Write data to the stream.
      Console::WriteLine( "Writing data to the stream." );
      i = 0;
      for ( i = 0; i < arrayLength; i++ )
         binWriter->Write( dataArray[ i ] );


      // Create a reader using the stream from the writer.
      BinaryReader^ binReader = gcnew BinaryReader( binWriter->BaseStream );

      // Return to the beginning of the stream.
      binReader->BaseStream->Position = 0;

         // Read and verify the data.
         i = 0;
         Console::WriteLine( "Verifying the written data." );
         for ( i = 0; i < arrayLength; i++ )
            if ( binReader->ReadDouble() != dataArray[ i ] )
               Console::WriteLine( "Error writing data." );

         Console::WriteLine( "The data was written and verified." );
      catch ( EndOfStreamException^ e ) 
         Console::WriteLine( "Error writing data: {0}.", e->GetType()->Name );



Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
© 2017 Microsoft