Share via


Convert.ToString Method (Decimal, IFormatProvider)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Converts the value of the specified Decimal number to its equivalent String representation.

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

Syntax

'Declaration
Public Shared Function ToString ( _
    value As Decimal, _
    provider As IFormatProvider _
) As String
public static string ToString(
    decimal value,
    IFormatProvider provider
)

Parameters

Return Value

Type: System.String
The String equivalent of the value of value.

Remarks

This implementation is identical to Decimal.ToString.

Examples

The following code example converts a Decimal value to a String with the ToString method, using an IFormatProvider object.

' Example of the Convert.ToString( numeric types ) and 
' Convert.ToString( numeric types, IFormatProvider ) methods.
Imports System.Globalization

Module Example

   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      ' Create a NumberFormatInfo object and set several of its
      ' properties that apply to numbers.
      Dim provider As NumberFormatInfo = New NumberFormatInfo()
      Dim formatter As String = "{0,22}   {1}"

      ' These properties will affect the conversion.
      provider.NegativeSign = "minus "
      provider.NumberDecimalSeparator = " point "

      ' These properties will not be applied.
      provider.NumberDecimalDigits = 2
      provider.NumberGroupSeparator = "."
      provider.NumberGroupSizes = New Integer() {3}

      ' Convert these values using default values and the
      ' format provider created above.
      Dim ByteA As Byte = 140
      Dim SByteA As SByte = Convert.ToSByte(-60)
      Dim UInt16A As UInt16 = Convert.ToUInt16(61680)
      Dim Int16A As Short = -3855

      Dim UInt32A As UInt32 = Convert.ToUInt32(4042322160)
      Dim Int32A As Integer = -252645135
      Dim UInt64A As UInt64 = _
                          Convert.ToUInt64(8138269444283625712)
      Dim Int64A As Long = -1085102592571150095

      Dim SingleA As Single = -32.375F
      Dim DoubleA As Double = 61680.3855
      Dim DecimA As Decimal = 4042322160.252645135D
      Dim ObjDouble As Object = CType(-98765.4321, Object)

      outputBlock.Text &= "This example of " & _
          "Convert.ToString( numeric types ) and " & vbCrLf & _
          "Convert.ToString( numeric types, IFormatProvider ) " & _
          vbCrLf & "converts values of each of the CLR base " & _
          "numeric types to strings, " & vbCrLf & "using " & _
          "default formatting and a NumberFormatInfo object." & vbCrLf
      outputBlock.Text &= vbCrLf & _
          "Note: Of the several NumberFormatInfo properties " & _
          "that are changed, " & vbCrLf & "only the negative " & _
          "sign and decimal separator affect the conversions." & vbCrLf
      outputBlock.Text &= String.Format(vbCrLf & formatter, _
          "Default", "Format Provider") & vbCrLf
      outputBlock.Text &= String.Format(formatter, _
          "-------", "---------------") & vbCrLf

      ' Convert the values with and without a format provider.
      outputBlock.Text &= String.Format(formatter, Convert.ToString(ByteA) & vbCrLf, _
          Convert.ToString(ByteA, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(SByteA) & vbCrLf, _
          Convert.ToString(SByteA, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(UInt16A) & vbCrLf, _
          Convert.ToString(UInt16A, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(Int16A) & vbCrLf, _
          Convert.ToString(Int16A, provider))

      outputBlock.Text &= String.Format(formatter, Convert.ToString(UInt32A) & vbCrLf, _
          Convert.ToString(UInt32A, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(Int32A) & vbCrLf, _
          Convert.ToString(Int32A, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(UInt64A) & vbCrLf, _
          Convert.ToString(UInt64A, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(Int64A) & vbCrLf, _
          Convert.ToString(Int64A, provider))

      outputBlock.Text &= String.Format(formatter, Convert.ToString(SingleA) & vbCrLf, _
          Convert.ToString(SingleA, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(DoubleA) & vbCrLf, _
          Convert.ToString(DoubleA, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(DecimA) & vbCrLf, _
          Convert.ToString(DecimA, provider))
      outputBlock.Text &= String.Format(formatter, Convert.ToString(ObjDouble) & vbCrLf, _
          Convert.ToString(ObjDouble, provider))
   End Sub
End Module

' This example of Convert.ToString( numeric types ) and
' Convert.ToString( numeric types, IFormatProvider )
' converts values of each of the CLR base numeric types to strings,
' using default formatting and a NumberFormatInfo object.
' 
' Note: Of the several NumberFormatInfo properties that are changed,
' only the negative sign and decimal separator affect the conversions.
' 
'                Default   Format Provider
'                -------   ---------------
'                    140   140
'                    -60   minus 60
'                  61680   61680
'                  -3855   minus 3855
'             4042322160   4042322160
'             -252645135   minus 252645135
'    8138269444283625712   8138269444283625712
'   -1085102592571150095   minus 1085102592571150095
'                -32.375   minus 32 point 375
'             61680.3855   61680 point 3855
'   4042322160.252645135   4042322160 point 252645135
'            -98765.4321   minus 98765 point 4321
// Example of the Convert.ToString( numeric types ) and 
// Convert.ToString( numeric types, IFormatProvider ) methods.
using System;
using System.Globalization;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Create a NumberFormatInfo object and set several of its
      // properties that apply to numbers.
      NumberFormatInfo provider = new NumberFormatInfo();
      string formatter = "{0,22}   {1}";

      // These properties will affect the conversion.
      provider.NegativeSign = "minus ";
      provider.NumberDecimalSeparator = " point ";

      // These properties will not be applied.
      provider.NumberDecimalDigits = 2;
      provider.NumberGroupSeparator = ".";
      provider.NumberGroupSizes = new int[] { 3 };

      // Convert these values using default values and the
      // format provider created above.
      byte ByteA = 140;
      SByte SByteA = -60;
      UInt16 UInt16A = 61680;
      short Int16A = -3855;

      UInt32 UInt32A = 4042322160;
      int Int32A = -252645135;
      UInt64 UInt64A = 8138269444283625712;
      long Int64A = -1085102592571150095;

      float SingleA = -32.375F;
      double DoubleA = 61680.3855;
      decimal DecimA = 4042322160.252645135M;
      object ObjDouble = (object)(-98765.4321);

      outputBlock.Text += "This example of " +
          "Convert.ToString( numeric types ) and \n" +
          "Convert.ToString( numeric types, IFormatProvider ) \n" +
          "converts values of each of the CLR base numeric types " +
          "to strings, \nusing default formatting and a " +
          "NumberFormatInfo object." + "\n";
      outputBlock.Text +=
          "\nNote: Of the several NumberFormatInfo " +
          "properties that are changed, \nonly the negative sign " +
          "and decimal separator affect the conversions.\n" + "\n";
      outputBlock.Text += String.Format(formatter, "Default", "Format Provider") + "\n";
      outputBlock.Text += String.Format(formatter, "-------", "---------------") + "\n";

      // Convert the values with and without a format provider.
      outputBlock.Text += String.Format(formatter, Convert.ToString(ByteA),
          Convert.ToString(ByteA, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(SByteA),
          Convert.ToString(SByteA, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(UInt16A),
          Convert.ToString(UInt16A, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(Int16A),
          Convert.ToString(Int16A, provider)) + "\n";

      outputBlock.Text += String.Format(formatter, Convert.ToString(UInt32A),
          Convert.ToString(UInt32A, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(Int32A),
          Convert.ToString(Int32A, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(UInt64A),
          Convert.ToString(UInt64A, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(Int64A),
          Convert.ToString(Int64A, provider)) + "\n";

      outputBlock.Text += String.Format(formatter, Convert.ToString(SingleA),
          Convert.ToString(SingleA, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(DoubleA),
          Convert.ToString(DoubleA, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(DecimA),
          Convert.ToString(DecimA, provider)) + "\n";
      outputBlock.Text += String.Format(formatter, Convert.ToString(ObjDouble),
          Convert.ToString(ObjDouble, provider)) + "\n";
   }
}

/*
This example of Convert.ToString( numeric types ) and
Convert.ToString( numeric types, IFormatProvider )
converts values of each of the CLR base numeric types to strings,
using default formatting and a NumberFormatInfo object.

Note: Of the several NumberFormatInfo properties that are changed,
only the negative sign and decimal separator affect the conversions.

               Default   Format Provider
               -------   ---------------
                   140   140
                   -60   minus 60
                 61680   61680
                 -3855   minus 3855
            4042322160   4042322160
            -252645135   minus 252645135
   8138269444283625712   8138269444283625712
  -1085102592571150095   minus 1085102592571150095
               -32.375   minus 32 point 375
            61680.3855   61680 point 3855
  4042322160.252645135   4042322160 point 252645135
           -98765.4321   minus 98765 point 4321
*/

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.