Convert.ToDecimal Method (String) (System)

Switch View :
ScriptFree
.NET Framework Class Library
Convert.ToDecimal Method (String)

Updated: March 2012

Converts the specified string representation of a number to an equivalent decimal number.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
Syntax

Visual Basic
Public Shared Function ToDecimal ( _
	value As String _
) As Decimal
C#
public static decimal ToDecimal(
	string value
)
Visual C++
public:
static Decimal ToDecimal(
	String^ value
)
F#
static member ToDecimal : 
        value:string -> decimal 

Parameters

value
Type: System.String
A string that contains a number to convert.

Return Value

Type: System.Decimal
A decimal number that is equivalent to the number in value, or 0 (zero) if value is null.
Exceptions

Exception Condition
FormatException

value is not a number in a valid format.

OverflowException

value represents a number that is less than MinValue or greater than MaxValue.

Remarks

Using the ToDecimal method is equivalent to passing value to the Decimal.Parse(String) method. value is interpreted by using the formatting conventions of the current thread culture.

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.

Examples

The following example illustrates the use of ToDecimal. It attempts to convert a String to a Decimal, and throws the possible exceptions that may arise during the conversion.

Visual Basic

Public Sub ConvertStringDecimal(ByVal stringVal As String)
    Dim decimalVal As Decimal = 0

    Try
        decimalVal = System.Convert.ToDecimal(stringVal)
        System.Console.WriteLine("The string as a decimal is {0}.", _
                                  decimalVal)
    Catch exception As System.OverflowException
        System.Console.WriteLine( _
            "Overflow in string-to-decimal conversion.")
    Catch exception As System.FormatException
        System.Console.WriteLine( _
            "The string is not formatted as a decimal.")
    Catch exception As System.ArgumentException
        System.Console.WriteLine("The string is null.")
    End Try

    ' Decimal to string conversion will not overflow.
    stringVal = System.Convert.ToString(decimalVal)
    System.Console.WriteLine("The decimal as a string is {0}.", _
                              stringVal)
End Sub


C#

		public void ConvertStringDecimal(string stringVal) {
			decimal decimalVal = 0;
			
			try {
				decimalVal = System.Convert.ToDecimal(stringVal);
				System.Console.WriteLine(
					"The string as a decimal is {0}.", decimalVal);
			} 
			catch (System.OverflowException){
				System.Console.WriteLine(
					"The conversion from string to decimal overflowed.");
			}
			catch (System.FormatException) {
				System.Console.WriteLine(
					"The string is not formatted as a decimal.");
			}
			catch (System.ArgumentNullException) {
				System.Console.WriteLine(
					"The string is null.");
			}

			// Decimal to string conversion will not overflow.
			stringVal = System.Convert.ToString(decimalVal);
			System.Console.WriteLine(
				"The decimal as a string is {0}.", stringVal);
		}	


Visual C++

public:
   void ConvertStringDecimal( String^ stringVal )
   {
      Decimal decimalVal = 0;

      try
      {
         decimalVal = System::Convert::ToDecimal( stringVal );
         System::Console::WriteLine( "The String as a decimal is {0}.",
         decimalVal );
      }
      catch ( System::OverflowException^ ) 
      {
         System::Console::WriteLine(
            "The conversion from String to decimal overflowed." );
      }
      catch ( System::FormatException^ ) 
      {
         System::Console::WriteLine(
            "The String is not formatted as a decimal." );
      }
      catch ( System::ArgumentNullException^ ) 
      {
         System::Console::WriteLine( "The String is 0." );
      }

      // Decimal to String conversion will not overflow.
      stringVal = System::Convert::ToString( decimalVal );
      System::Console::WriteLine(
         "The decimal as a String is {0}.", stringVal );
   }


Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference

Change History

Date

History

Reason

March 2012

Expanded the Remarks section.

Customer feedback.