C# | Convert.ToDouble(String, IFormatProvider) Method - GeeksforGeeks

18 Dec, 2019
This method is used to converts the specified string representation of a number to an equivalent double-precision floating-point number, using the specified culture-specific formatting information.
Syntax:
public static double ToDouble (string value, IFormatProvider provider);
Parameters:
value: It is a string that contains the number to convert.
provider: It is an object that supplies culture-specific formatting information.
Return Value: This method returns a double-precision floating-point number which is equivalent to the number in value, or 0 (zero) if value is null.
Exceptions:
FormatException: If the value is not a number in a valid format.
OverflowException: If the value represents a number that is less than MinValue or greater than MaxValue.
Below programs illustrate the use of Convert.ToDouble(String, IFormatProvider) Method:
Example 1:
// C# program to demonstrate the// Convert.ToDouble() Methodusing System;using System.Globalization;  class GFG {  // Main Methodpublic static void Main(){    try {          // Create a NumberFormatInfo object         // and set some of its properties.        NumberFormatInfo provider = new NumberFormatInfo();        provider.NumberDecimalSeparator = ", ";        provider.NumberGroupSeparator = ".";        provider.NumberGroupSizes = new int[] { 3 };          // declaring and initializing String array        string[] values = {"123456789", "12345.6789",                                      "12345, 6789"};          // calling get() Method        Console.Write("Converted decimal value "                         + "of specified strings: ");          for (int j = 0; j < values.Length; j++)         {            get(values[j], provider);        }    }      catch (FormatException e)    {          Console.WriteLine("\n");        Console.Write("Exception Thrown: ");        Console.Write("{0}", e.GetType(), e.Message);    }      catch (OverflowException e)    {          Console.WriteLine("\n");        Console.Write("Exception Thrown: ");        Console.Write("{0}", e.GetType(), e.Message);    }}  // Defining get() methodpublic static void get(string s,      NumberFormatInfo provider){      // converting string to specified char    double val = Convert.ToDouble(s, provider);      // display the converted char value    Console.Write(" {0}, ", val);}}
Converted decimal value of specified strings:  123456789,  123456789,  12345.6789,

Example 2: For FormatException
// C# program to demonstrate the// Convert.ToDouble() Methodusing System;using System.Globalization;  class GFG {  // Main Methodpublic static void Main(){    try {          // Create a NumberFormatInfo object         // and set some of its properties.        NumberFormatInfo provider = new NumberFormatInfo();        provider.NumberDecimalSeparator = ", ";        provider.NumberGroupSeparator = ".";        provider.NumberGroupSizes = new int[] { 3 };          // declaring and initializing String array        string[] values = {"123456789", "12345.6789",                                      "12345, 6789"};          // calling get() Method        Console.Write("Converted double value"                 + " of specified strings: ");          for (int j = 0; j < values.Length; j++)        {              get(values[j], provider);        }          Console.WriteLine("\n");        string s = "123 456, 789";          Console.WriteLine("format of s is invalid ");          // converting string to specified char        double val = Convert.ToDouble(s, provider);          // display the converted char value        Console.Write(" {0}, ", val);    }      catch (FormatException e)     {          Console.Write("Exception Thrown: ");        Console.Write("{0}", e.GetType(), e.Message);    }          catch (OverflowException e)     {          Console.Write("Exception Thrown: ");        Console.Write("{0}", e.GetType(), e.Message);    }}  // Defining get() methodpublic static void get(string s,      NumberFormatInfo provider){      // converting string to specified char    double val = Convert.ToDouble(s, provider);      // display the converted char value    Console.Write(" {0}, ", val);}}
Converted double value of specified strings:  123456789,  123456789,  12345.6789, 

format of s is invalid 
Exception Thrown: System.FormatException

Example 3: For OverflowException
// C# program to demonstrate the// Convert.ToDouble() Methodusing System;using System.Globalization;  class GFG {  // Main Methodpublic static void Main(){    try {          // Create a NumberFormatInfo object        // and set some of its properties.        NumberFormatInfo provider = new NumberFormatInfo();        provider.NumberDecimalSeparator = ", ";        provider.NumberGroupSeparator = ".";        provider.NumberGroupSizes = new int[] { 3 };          // declaring and initializing String array        string[] values = { "123456789", "12345.6789",                                      "12345, 6789" };          // calling get() Method        Console.Write("Converted decimal value "                    + "of specified strings: ");          for (int j = 0; j < values.Length; j++)        {              get(values[j], provider);        }          Console.WriteLine("\n");        string s = "-7922816251426433759354395033500000";          Console.WriteLine("s is less than the MaxValue");          // converting string to specified char        decimal val = Convert.ToDecimal(s, provider);          // display the converted char value        Console.Write(" {0}, ", val);    }          catch (FormatException e)     {        Console.Write("Exception Thrown: ");        Console.Write("{0}", e.GetType(), e.Message);    }          catch (OverflowException e)     {        Console.Write("Exception Thrown: ");        Console.Write("{0}", e.GetType(), e.Message);    }}  // Defining get() methodpublic static void get(string s,      NumberFormatInfo provider){      // converting string to specified char    double val = Convert.ToDouble(s, provider);      // display the converted char value    Console.Write(" {0}, ", val);}}
Converted decimal value of specified strings:  123456789,  123456789,  12345.6789, 

s is less than the MaxValue
Exception Thrown: System.OverflowException

Reference:
https://docs.microsoft.com/en-us/dotnet/api/system.convert.todouble?view=netframework-4.7.2#System_Convert_ToDouble_System_String_System_IFormatProvider_
shubham_singh
CSharp Convert Class
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C# Dictionary with examples
C# | Delegates
C# | Method Overriding
C# | Abstract Classes
Extension Method in C#
Difference between Ref and Out keywords in C#
C# | Replace() Method
C# | Class and Object
C# | Constructors
Introduction to .NET Framework