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

This method is used to convert the specified string representation of a number to an equivalent decimal number, using the specified culture-specific formatting information.

Syntax:

public static decimal ToDecimal (string value, IFormatProvider provider);

Parameters:

  • value: It is a string that contains a number to convert.
  • provider: It is an object that supplies culture-specific formatting information.

Return Value: This method returns a decimal number that 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.ToDecimal(String, IFormatProvider) Method:

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to demonstrate the
// Convert.ToDecimal() Method
using System;
using System.Globalization;
  
class GFG {
  
// Main Method
public static void Main()
{
    try {
          
        // creating object of CultureInfo
        CultureInfo cultures = new CultureInfo("en-US");
  
        // declaring and intializing String array
        string[] values = {"123456789", "12345.6789",
                                 "123,456,789.0123"};
  
        // calling get() Method
        Console.WriteLine("Converted decimal value "+
                           "of specified strings: ");
                             
        for (int j = 0; j < values.Length; j++) {
            get(values[j], cultures);
        }
    }
      
    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,
           CultureInfo cultures)
{
  
    // converting string to specified char
    decimal val = Convert.ToDecimal(s, cultures);
  
    // display the converted char value
    Console.Write(" {0}, ", val);
}
}

chevron_right


Output:

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

Example 2: For FormatException

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to demonstrate the
// Convert.ToDecimal() Method
using System;
using System.Globalization;
  
class GFG {
  
// Main Method
public static void Main()
{
    try {
          
        // creating object of CultureInfo
        CultureInfo cultures = new CultureInfo("en-US");
  
        // declaring and intializing String array
        string[] values = {"123456789", "12345.6789"
                                 "123,456,789.0123"};
  
        // calling get() Method
        Console.WriteLine("Converted decimal value"+
                         " of specified strings: ");
                           
        for (int j = 0; j < values.Length; j++) {
              
            get(values[j], cultures);
        }
          
        Console.WriteLine("\n");
        string s = "123 456, 789";
  
        Console.WriteLine("format of s is invalid ");
  
        // converting string to specified char
        decimal val = Convert.ToDecimal(s, cultures);
  
        // 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,
           CultureInfo cultures)
{
  
    // converting string to
    // specified decimal value
    decimal val = Convert.ToDecimal(s, cultures);
  
    // display the converted decimal value
    Console.Write(" {0}, ", val);
}
}

chevron_right


Output:

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

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.ToDecimal() Method
using System;
using System.Globalization;
  
class GFG {
  
// Main Method
public static void Main()
{
    try {
          
        // creating object of CultureInfo
        CultureInfo cultures = new CultureInfo("en-US");
  
        // declaring and intializing String array
        string[] values = {"123456789", "12345.6789",
                                 "123,456,789.0123"};
  
        // calling get() Method
        Console.WriteLine("Converted decimal value "+
                           "of specified strings: ");
                             
        for (int j = 0; j < values.Length; j++) {
              
            get(values[j], cultures);
        }
          
        Console.WriteLine("\n");
        string s = "-7922816251426433759354395033500000";
  
        Console.WriteLine("s is less than the MinValue");
  
        // converting string to specified char
        decimal val = Convert.ToDecimal(s, cultures);
  
        // 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,
           CultureInfo cultures)
{
  
    // converting string to 
    // specified decimal value
    decimal val = Convert.ToDecimal(s, cultures);
  
    // display the converted decimal value
    Console.Write(" {0}, ", val);
}
}

chevron_right


Output:

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

s is less than the MinValue
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.