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.
Assembly: mscorlib (in mscorlib.dll)
Public Shared Function ToDouble ( value As String, provider As IFormatProvider ) As Double
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.DoubleA double-precision floating-point number that is equivalent to the number in value, or 0 (zero) if value is null.
| Exception | Condition |
|---|---|
| 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.
Imports System.Globalization Module Example Sub Main() ' Create a NumberFormatInfo object and set some of its properties. Dim provider As New NumberFormatInfo() provider.NumberDecimalSeparator = "," provider.NumberGroupSeparator = "." provider.NumberGroupSizes = { 3 } ' Define an array of numeric strings to convert. Dim values() As String = { "123456789", "12345.6789", "12345,6789", "123,456.789", "123.456,789", "123,456,789.0123", "123.456.789,0123" } Console.WriteLine("Default Culture: {0}", CultureInfo.CurrentCulture.Name) Console.WriteLine() Console.WriteLine("{0,-22} {1,-20} {2,-20}", "String to Convert", "Default/Exception", "Provider/Exception") Console.WriteLine() ' Convert each string to a Double with and without the provider. For Each value In values Console.Write("{0,-22} ", value) Try Console.Write("{0,-20} ", Convert.ToDouble(value)) Catch e As FormatException Console.Write("{0,-20} ", e.GetType().Name) End Try Try Console.WriteLine("{0,-20} ", Convert.ToDouble(value, provider)) Catch e As FormatException Console.WriteLine("{0,-20} ", e.GetType().Name) End Try Next End Sub End Module ' 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
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