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

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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to demonstrate the
// Convert.ToDouble() Method
using System;
using System.Globalization;
  
class GFG {
  
// Main Method
public 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 intializing 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() method
public 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);
}
}

chevron_right


Output:

Converted decimal value of specified strings:  123456789,  123456789,  12345.6789,

Example 2: For FormatException

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to demonstrate the
// Convert.ToDouble() Method
using System;
using System.Globalization;
  
class GFG {
  
// Main Method
public 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 intializing 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() method
public 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);
}
}

chevron_right


Output:

Converted double value of specified strings:  123456789,  123456789,  12345.6789, 

format of s is invalid 
Exception Thrown: System.FormatException

Example 3: For OverflowException

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to demonstrate the
// Convert.ToDouble() Method
using System;
using System.Globalization;
  
class GFG {
  
// Main Method
public 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 intializing 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() method
public 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);
}
}

chevron_right


Output:

Converted decimal value of specified strings:  123456789,  123456789,  12345.6789, 

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

Reference:



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.