Convert.ToDecimal Method (String, IFormatProvider)
Converts the specified string representation of a number to an equivalent decimal number, using the specified culture-specific formatting information.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
-
Type:
System.String
A string that contains a number to convert.
- provider
-
Type:
System.IFormatProvider
An object that supplies culture-specific formatting information.
Return Value
Type: System.DecimalA decimal 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 Decimal.MinValue or greater than Decimal.MaxValue. |
The return value is the result of invoking the Decimal.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 Decimal.TryParse method instead. It returns a Boolean value that indicates whether the conversion succeeded or failed.
The following example attempts to convert an array of strings to Decimal values by using NumberFormatInfo objects that represent two different cultures.
using System; using System.Globalization; public class Example { public static void Main() { string[] values = { "123456789", "12345.6789", "12 345,6789", "123,456.789", "123 456,789", "123,456,789.0123", "123 456 789,0123" }; CultureInfo[] cultures = { new CultureInfo("en-US"), new CultureInfo("fr-FR") }; foreach (CultureInfo culture in cultures) { Console.WriteLine("String -> Decimal Conversion Using the {0} Culture", culture.Name); foreach (string value in values) { Console.Write("{0,20} -> ", value); try { Console.WriteLine(Convert.ToDecimal(value, culture)); } catch (FormatException) { Console.WriteLine("FormatException"); } } Console.WriteLine(); } } } // The example displays the following output: // String -> Decimal Conversion Using the en-US Culture // 123456789 -> 123456789 // 12345.6789 -> 12345.6789 // 12 345,6789 -> FormatException // 123,456.789 -> 123456.789 // 123 456,789 -> FormatException // 123,456,789.0123 -> 123456789.0123 // 123 456 789,0123 -> FormatException // // String -> Decimal Conversion Using the fr-FR Culture // 123456789 -> 123456789 // 12345.6789 -> FormatException // 12 345,6789 -> 12345.6789 // 123,456.789 -> FormatException // 123 456,789 -> 123456.789 // 123,456,789.0123 -> FormatException // 123 456 789,0123 -> 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