Export (0) Print
Expand All

Convert.ToDouble Method (String, IFormatProvider)

Converts the specified string representation of a number to an equivalent double-precision floating-point number, using the specified culture-specific formatting information.

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

public static double ToDouble(
	string value,
	IFormatProvider provider
)

Parameters

value
Type: System.String

A string that contains the number to convert.

provider
Type: System.IFormatProvider

An object that supplies culture-specific formatting information.

Return Value

Type: System.Double
A double-precision floating-point number that is equivalent to the number in value, or 0 (zero) if value is null.

ExceptionCondition
FormatException

value is not a number in a valid format.

OverflowException

value represents a number that is less than Double.MinValue or greater than Double.MaxValue.

The return value is the result of invoking the Double.Parse method on value.

provider is an IFormatProvider instance that obtains a NumberFormatInfo object. The NumberFormatInfo object provides culture-specific information about the format of value. If provider is null, the NumberFormatInfo for the current culture is used.

If you prefer not to handle an exception if the conversion fails, you can call the Double.TryParse method instead. It returns a Boolean value that indicates whether the conversion succeeded or failed.

The following example converts string representations of Double values with the ToDouble method, using an IFormatProvider object.

using System;
using System.Globalization;

class Example
{
    static void Main()
    {
        // Create a NumberFormatInfo object and set some of its properties.
        NumberFormatInfo provider = new NumberFormatInfo();
        provider.NumberDecimalSeparator = ",";
        provider.NumberGroupSeparator = ".";
        provider.NumberGroupSizes = new int[] { 3 };

        // Define an array of numeric strings to convert.
        String[] values = { "123456789", "12345.6789", "12345,6789", 
                            "123,456.789", "123.456,789", 
                            "123,456,789.0123", "123.456.789,0123" };

        Console.WriteLine("Default Culture: {0}\n", 
                          CultureInfo.CurrentCulture.Name);
        Console.WriteLine("{0,-22} {1,-20} {2,-20}\n", "String to Convert",
                          "Default/Exception", "Provider/Exception");

        // Convert each string to a Double with and without the provider. 
        foreach (var value in values) {
           Console.Write("{0,-22} ", value);
           try {
              Console.Write("{0,-20} ", Convert.ToDouble(value));
           }   
           catch (FormatException e) {
              Console.Write("{0,-20} ", e.GetType().Name);
           }
           try {
              Console.WriteLine("{0,-20} ", Convert.ToDouble(value, provider));
           }
           catch (FormatException e) {
              Console.WriteLine("{0,-20} ", e.GetType().Name);
           }
        }
    }
}
// The example displays the following output: 
//       Default Culture: en-US 
//        
//       String to Convert      Default/Exception    Provider/Exception 
//        
//       123456789              123456789            123456789 
//       12345.6789             12345.6789           123456789 
//       12345,6789             123456789            12345.6789 
//       123,456.789            123456.789           FormatException 
//       123.456,789            FormatException      123456.789 
//       123,456,789.0123       123456789.0123       FormatException 
//       123.456.789,0123       FormatException      123456789.0123

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft