NumberFormatInfo.InvariantInfo Property

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

Gets the default read-only NumberFormatInfo object that is culture-independent (invariant).

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

Syntax

'Declaration
Public Shared ReadOnly Property InvariantInfo As NumberFormatInfo
public static NumberFormatInfo InvariantInfo { get; }

Property Value

Type: System.Globalization.NumberFormatInfo
The default read-only NumberFormatInfo object that is culture-independent (invariant).

Remarks

This property does not change, regardless of the current culture.

Examples

The following example displays the default property values of the InvariantInfo object.

Imports System.Globalization
Imports System.Text


Class Example


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

      ' Gets the InvariantInfo.
      Dim myInv As NumberFormatInfo = NumberFormatInfo.InvariantInfo

      ' Gets a UnicodeEncoding to display the Unicode value of symbols.
      Dim myUE As New UnicodeEncoding(True, False)
      Dim myCodes() As Byte

      ' Displays the default values for each of the properties.
      outputBlock.Text &= "InvariantInfo:" & vbCrLf
      outputBlock.Text += String.Format("Note: Symbols might not display correctly,") & vbCrLf
      outputBlock.Text += String.Format("therefore, Unicode values are included.") & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "CurrencyDecimalDigits" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.CurrencyDecimalDigits) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "CurrencyDecimalSeparator" + ControlChars.Tab + "{0}", myInv.CurrencyDecimalSeparator) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "CurrencyGroupSeparator" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.CurrencyGroupSeparator) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "CurrencyGroupSizes" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.CurrencyGroupSizes(0)) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "CurrencyNegativePattern" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.CurrencyNegativePattern) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "CurrencyPositivePattern" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.CurrencyPositivePattern) & vbCrLf
      myCodes = myUE.GetBytes(myInv.CurrencySymbol)
      outputBlock.Text += String.Format(ControlChars.Tab + "CurrencySymbol" + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "{0}" + ControlChars.Tab + "(U+{1:x2}{2:x2})", myInv.CurrencySymbol, myCodes(0), myCodes(1)) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NaNSymbol" + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NaNSymbol) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NegativeInfinitySymbol" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NegativeInfinitySymbol) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NegativeSign" + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NegativeSign) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NumberDecimalDigits" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NumberDecimalDigits) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NumberDecimalSeparator" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NumberDecimalSeparator) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NumberGroupSeparator" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NumberGroupSeparator) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NumberGroupSizes" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NumberGroupSizes(0)) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "NumberNegativePattern" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.NumberNegativePattern) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PercentDecimalDigits" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PercentDecimalDigits) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PercentDecimalSeparator" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PercentDecimalSeparator) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PercentGroupSeparator" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PercentGroupSeparator) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PercentGroupSizes" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PercentGroupSizes(0)) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PercentNegativePattern" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PercentNegativePattern) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PercentPositivePattern" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PercentPositivePattern) & vbCrLf
      myCodes = myUE.GetBytes(myInv.PercentSymbol)
      outputBlock.Text += String.Format(ControlChars.Tab + "PercentSymbol" + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "{0}" + ControlChars.Tab + "(U+{1:x2}{2:x2})", myInv.PercentSymbol, myCodes(0), myCodes(1)) & vbCrLf
      myCodes = myUE.GetBytes(myInv.PerMilleSymbol)
      outputBlock.Text += String.Format(ControlChars.Tab + "PerMilleSymbol" + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "{0}" + ControlChars.Tab + "(U+{1:x2}{2:x2})", myInv.PerMilleSymbol, myCodes(0), myCodes(1)) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PositiveInfinitySymbol" + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PositiveInfinitySymbol) & vbCrLf
      outputBlock.Text += String.Format(ControlChars.Tab + "PositiveSign" + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "{0}", myInv.PositiveSign) & vbCrLf
   End Sub 'Main 
End Class 'SamplesNumberFormatInfo


' This code produces the following output.
'
' InvariantInfo:
' Note: Symbols might not display correctly,
' therefore, Unicode values are included.
'         CurrencyDecimalDigits           2
'         CurrencyDecimalSeparator        .
'         CurrencyGroupSeparator          ,
'         CurrencyGroupSizes              3
'         CurrencyNegativePattern         0
'         CurrencyPositivePattern         0
'         CurrencySymbol                         (U+00a4)
'         NaNSymbol                       NaN
'         NegativeInfinitySymbol          -Infinity
'         NegativeSign                    -
'         NumberDecimalDigits             2
'         NumberDecimalSeparator          .
'         NumberGroupSeparator            ,
'         NumberGroupSizes                3
'         NumberNegativePattern           1
'         PercentDecimalDigits            2
'         PercentDecimalSeparator         .
'         PercentGroupSeparator           ,
'         PercentGroupSizes               3
'         PercentNegativePattern          0
'         PercentPositivePattern          0
'         PercentSymbol                   %       (U+0025)
'         PerMilleSymbol                  %       (U+2030)
'         PositiveInfinitySymbol          Infinity
'         PositiveSign                    +
using System;
using System.Globalization;
using System.Text;

class Example
{

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      // Gets the InvariantInfo.
      NumberFormatInfo myInv = NumberFormatInfo.InvariantInfo;

      // Gets a UnicodeEncoding to display the Unicode value of symbols.
      UnicodeEncoding myUE = new UnicodeEncoding(true, false);
      byte[] myCodes;

      // Displays the default values for each of the properties.
      outputBlock.Text += String.Format("InvariantInfo:\nNote: Symbols might not display correctly,\ntherefore, Unicode values are included.") + "\n";
      outputBlock.Text += String.Format("\tCurrencyDecimalDigits\t\t{0}", myInv.CurrencyDecimalDigits) + "\n";
      outputBlock.Text += String.Format("\tCurrencyDecimalSeparator\t{0}", myInv.CurrencyDecimalSeparator) + "\n";
      outputBlock.Text += String.Format("\tCurrencyGroupSeparator\t\t{0}", myInv.CurrencyGroupSeparator) + "\n";
      outputBlock.Text += String.Format("\tCurrencyGroupSizes\t\t{0}", myInv.CurrencyGroupSizes[0]) + "\n";
      outputBlock.Text += String.Format("\tCurrencyNegativePattern\t\t{0}", myInv.CurrencyNegativePattern) + "\n";
      outputBlock.Text += String.Format("\tCurrencyPositivePattern\t\t{0}", myInv.CurrencyPositivePattern) + "\n";
      myCodes = myUE.GetBytes(myInv.CurrencySymbol);
      outputBlock.Text += String.Format("\tCurrencySymbol\t\t\t{0}\t(U+{1:x2}{2:x2})", myInv.CurrencySymbol, myCodes[0], myCodes[1]) + "\n";
      outputBlock.Text += String.Format("\tNaNSymbol\t\t\t{0}", myInv.NaNSymbol) + "\n";
      outputBlock.Text += String.Format("\tNegativeInfinitySymbol\t\t{0}", myInv.NegativeInfinitySymbol) + "\n";
      outputBlock.Text += String.Format("\tNegativeSign\t\t\t{0}", myInv.NegativeSign) + "\n";
      outputBlock.Text += String.Format("\tNumberDecimalDigits\t\t{0}", myInv.NumberDecimalDigits) + "\n";
      outputBlock.Text += String.Format("\tNumberDecimalSeparator\t\t{0}", myInv.NumberDecimalSeparator) + "\n";
      outputBlock.Text += String.Format("\tNumberGroupSeparator\t\t{0}", myInv.NumberGroupSeparator) + "\n";
      outputBlock.Text += String.Format("\tNumberGroupSizes\t\t{0}", myInv.NumberGroupSizes[0]) + "\n";
      outputBlock.Text += String.Format("\tNumberNegativePattern\t\t{0}", myInv.NumberNegativePattern) + "\n";
      outputBlock.Text += String.Format("\tPercentDecimalDigits\t\t{0}", myInv.PercentDecimalDigits) + "\n";
      outputBlock.Text += String.Format("\tPercentDecimalSeparator\t\t{0}", myInv.PercentDecimalSeparator) + "\n";
      outputBlock.Text += String.Format("\tPercentGroupSeparator\t\t{0}", myInv.PercentGroupSeparator) + "\n";
      outputBlock.Text += String.Format("\tPercentGroupSizes\t\t{0}", myInv.PercentGroupSizes[0]) + "\n";
      outputBlock.Text += String.Format("\tPercentNegativePattern\t\t{0}", myInv.PercentNegativePattern) + "\n";
      outputBlock.Text += String.Format("\tPercentPositivePattern\t\t{0}", myInv.PercentPositivePattern) + "\n";
      myCodes = myUE.GetBytes(myInv.PercentSymbol);
      outputBlock.Text += String.Format("\tPercentSymbol\t\t\t{0}\t(U+{1:x2}{2:x2})", myInv.PercentSymbol, myCodes[0], myCodes[1]) + "\n";
      myCodes = myUE.GetBytes(myInv.PerMilleSymbol);
      outputBlock.Text += String.Format("\tPerMilleSymbol\t\t\t{0}\t(U+{1:x2}{2:x2})", myInv.PerMilleSymbol, myCodes[0], myCodes[1]) + "\n";
      outputBlock.Text += String.Format("\tPositiveInfinitySymbol\t\t{0}", myInv.PositiveInfinitySymbol) + "\n";
      outputBlock.Text += String.Format("\tPositiveSign\t\t\t{0}", myInv.PositiveSign) + "\n";

   }
}


/*

This code produces the following output.

InvariantInfo:
Note: Symbols might not display correctly,
therefore, Unicode values are included.
        CurrencyDecimalDigits           2
        CurrencyDecimalSeparator        .
        CurrencyGroupSeparator          ,
        CurrencyGroupSizes              3
        CurrencyNegativePattern         0
        CurrencyPositivePattern         0
        CurrencySymbol                         (U+00a4)
        NaNSymbol                       NaN
        NegativeInfinitySymbol          -Infinity
        NegativeSign                    -
        NumberDecimalDigits             2
        NumberDecimalSeparator          .
        NumberGroupSeparator            ,
        NumberGroupSizes                3
        NumberNegativePattern           1
        PercentDecimalDigits            2
        PercentDecimalSeparator         .
        PercentGroupSeparator           ,
        PercentGroupSizes               3
        PercentNegativePattern          0
        PercentPositivePattern          0
        PercentSymbol                   %       (U+0025)
        PerMilleSymbol                  %       (U+2030)
        PositiveInfinitySymbol          Infinity
        PositiveSign                    +

*/

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.