This documentation is archived and is not being maintained.
BitConverter::ToDouble Method
Visual Studio 2010
Returns a double-precision floating point number converted from eight bytes at a specified position in a byte array.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: array<System::Byte>
An array of bytes.
- startIndex
- Type: System::Int32
The starting position within value.
Return Value
Type: System::DoubleA double precision floating point number formed by eight bytes beginning at startIndex.
| Exception | Condition |
|---|---|
| ArgumentException | startIndex is greater than or equal to the length of value minus 7, and is less than or equal to the length of value minus 1. |
| ArgumentNullException | value is nullptr. |
| ArgumentOutOfRangeException | startIndex is less than zero or greater than the length of value minus 1. |
The following code example converts elements of Byte arrays to Double values with the ToDouble method.
// Example of the BitConverter::ToDouble method. using namespace System; // Convert eight byte array elements to a double and display it. void BAToDouble( array<unsigned char>^bytes, int index ) { double value = BitConverter::ToDouble( bytes, index ); Console::WriteLine( "{0,5}{1,27}{2,27:E16}", index, BitConverter::ToString( bytes, index, 8 ), value ); } // Display a byte array, using multiple lines if necessary. void WriteMultiLineByteArray( array<unsigned char>^bytes ) { const int rowSize = 20; int iter; Console::WriteLine( "initial unsigned char array" ); Console::WriteLine( "---------------------------" ); for ( iter = 0; iter < bytes->Length - rowSize; iter += rowSize ) { Console::Write( BitConverter::ToString( bytes, iter, rowSize ) ); Console::WriteLine( "-" ); } Console::WriteLine( BitConverter::ToString( bytes, iter ) ); Console::WriteLine(); } int main() { array<unsigned char>^byteArray = {0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,224,111,64,0,0,224,255,255,255,239,65,0,0,0,0,0,0,112,63,0,0,0,0,0,0,240,61,223,136,30,28,254,116,170,1,250,89,140,66,202,192,243,63,251,89,140,66,202,192,243,63,252,89,140,66,202,192,243,63,82,211,187,188,232,126,61,126,255,255,255,255,255,255,239,255,255,255,255,255,255,239,127,1,0,0,0,0,0,0,0,248,255,0,0,0,0,0,0,240,255,0,0,0,0,0,0,240,127}; Console::WriteLine( "This example of the BitConverter::ToDouble( unsigned " "char[ ], int ) \nmethod generates the following output. It " "converts elements of a \nbyte array to double values.\n" ); WriteMultiLineByteArray( byteArray ); Console::WriteLine( "{0,5}{1,27}{2,27:E16}", "index", "array elements", "double" ); Console::WriteLine( "{0,5}{1,27}{2,27:E16}", "-----", "--------------", "------" ); // Convert byte array elements to double values. BAToDouble( byteArray, 0 ); BAToDouble( byteArray, 2 ); BAToDouble( byteArray, 10 ); BAToDouble( byteArray, 18 ); BAToDouble( byteArray, 26 ); BAToDouble( byteArray, 34 ); BAToDouble( byteArray, 42 ); BAToDouble( byteArray, 50 ); BAToDouble( byteArray, 58 ); BAToDouble( byteArray, 66 ); BAToDouble( byteArray, 74 ); BAToDouble( byteArray, 82 ); BAToDouble( byteArray, 89 ); BAToDouble( byteArray, 97 ); BAToDouble( byteArray, 99 ); BAToDouble( byteArray, 107 ); BAToDouble( byteArray, 115 ); } /* This example of the BitConverter.ToDouble( byte( ), int ) method generates the following output. It converts elements of a byte array to double values. initial byte array ------------------ 00-00-00-00-00-00-00-00-F0-3F-00-00-00-00-00-E0-6F-40-00-00- E0-FF-FF-FF-EF-41-00-00-00-00-00-00-70-3F-00-00-00-00-00-00- F0-3D-DF-88-1E-1C-FE-74-AA-01-FA-59-8C-42-CA-C0-F3-3F-FB-59- 8C-42-CA-C0-F3-3F-FC-59-8C-42-CA-C0-F3-3F-52-D3-BB-BC-E8-7E- 3D-7E-FF-FF-FF-FF-FF-FF-EF-FF-FF-FF-FF-FF-FF-EF-7F-01-00-00- 00-00-00-00-00-F8-FF-00-00-00-00-00-00-F0-FF-00-00-00-00-00- 00-F0-7F index array elements double ----- -------------- ------ 0 00-00-00-00-00-00-00-00 0.0000000000000000E+000 2 00-00-00-00-00-00-F0-3F 1.0000000000000000E+000 10 00-00-00-00-00-E0-6F-40 2.5500000000000000E+002 18 00-00-E0-FF-FF-FF-EF-41 4.2949672950000000E+009 26 00-00-00-00-00-00-70-3F 3.9062500000000000E-003 34 00-00-00-00-00-00-F0-3D 2.3283064365386963E-010 42 DF-88-1E-1C-FE-74-AA-01 1.2345678901234500E-300 50 FA-59-8C-42-CA-C0-F3-3F 1.2345678901234565E+000 58 FB-59-8C-42-CA-C0-F3-3F 1.2345678901234567E+000 66 FC-59-8C-42-CA-C0-F3-3F 1.2345678901234569E+000 74 52-D3-BB-BC-E8-7E-3D-7E 1.2345678901234569E+300 82 FF-FF-FF-FF-FF-FF-EF-FF -1.7976931348623157E+308 89 FF-FF-FF-FF-FF-FF-EF-7F 1.7976931348623157E+308 97 01-00-00-00-00-00-00-00 4.9406564584124654E-324 99 00-00-00-00-00-00-F8-FF NaN 107 00-00-00-00-00-00-F0-FF -Infinity 115 00-00-00-00-00-00-F0-7F Infinity */
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: