Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

NumberFormatInfo.CurrentInfo Property

Gets a read-only NumberFormatInfo that formats values based on the current culture.

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

'Declaration
Public Shared ReadOnly Property CurrentInfo As NumberFormatInfo

Property Value

Type: System.Globalization.NumberFormatInfo
A read-only NumberFormatInfo based on the culture of the current thread.

Retrieving a NumberFormatInfo object from the CurrentInfo property is equivalent to retrieving a NumberFormatInfo object from the CultureInfo.CurrentCulture.NumberFormat property.

The following example shows that the objects returned by the CurrentInfo and CultureInfo.CurrentCulture.NumberFormat properties are identical. It then uses reflection to display the property values of the NumberFormatInfo object returned by the CurrentInfo property on a system whose current culture is en-US.

Imports System.Collections
Imports System.Globalization
Imports System.Reflection

Public Class Example : Implements IComparer
   Public Shared Sub Main()
      Dim nfi1 As NumberFormatInfo = NumberFormatInfo.CurrentInfo
      Dim nfi2 As NumberFormatInfo = CultureInfo.CurrentCulture.NumberFormat
      Console.WriteLine("Objects equal: {0}", nfi1.Equals(nfi2))
      Console.WriteLine("Equal references: {0}", Object.ReferenceEquals(nfi1, nfi2))
      Console.WriteLine()

      Dim props() As PropertyInfo = nfi1.GetType().GetProperties(BindingFlags.Instance Or BindingFlags.Public)
      Array.Sort(props, New Example)
      Console.WriteLine("Properties of NumberFormat.CurrentInfo object:")
      For Each prop In props
         If prop.PropertyType.IsArray Then 
            Dim arr As Array = CType(prop.GetValue(nfi1), Array)
            Console.Write(String.Format("   {0}: ", prop.Name) + "{ ")
            Dim ctr As Integer = 0
            For Each item In arr
               Console.Write("{0}{1}", item, If(ctr = arr.Length - 1, " }", ", "))
               ctr += 1
            Next
            Console.WriteLine()
         Else
            Console.WriteLine("   {0}: {1}", prop.Name, prop.GetValue(nfi1))
        End If    
      Next       
   End Sub 

   Private Function Compare(x As Object, y As Object) As Integer _
      Implements IComparer.Compare

      If x Is Nothing And y Is Nothing Then Return 0
      Dim px As PropertyInfo = TryCast(x, PropertyInfo)
      If px Is Nothing Then Return -1

      Dim py As PropertyInfo = TryCast(y, PropertyInfo)
      If py Is Nothing Then Return 1

      Return String.Compare(px.Name, py.Name)
   End Function 
End Class 
' The example displays the following output: 
'       Objects equal: True 
'       Equal references: True 
'        
'       Properties of NumberFormat.CurrentInfo object: 
'          CurrencyDecimalDigits: 2 
'          CurrencyDecimalSeparator: . 
'          CurrencyGroupSeparator: , 
'          CurrencyGroupSizes: { 3 } 
'          CurrencyNegativePattern: 0 
'          CurrencyPositivePattern: 0 
'          CurrencySymbol: $ 
'          DigitSubstitution: None 
'          IsReadOnly: True 
'          NaNSymbol: NaN 
'          NativeDigits: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } 
'          NegativeInfinitySymbol: -Infinity 
'          NegativeSign: - 
'          NumberDecimalDigits: 2 
'          NumberDecimalSeparator: . 
'          NumberGroupSeparator: , 
'          NumberGroupSizes: { 3 } 
'          NumberNegativePattern: 1 
'          PercentDecimalDigits: 2 
'          PercentDecimalSeparator: . 
'          PercentGroupSeparator: , 
'          PercentGroupSizes: { 3 } 
'          PercentNegativePattern: 0 
'          PercentPositivePattern: 0 
'          PercentSymbol: % 
'          PerMilleSymbol: % 
'          PositiveInfinitySymbol: Infinity 
'          PositiveSign: +

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Show:
© 2015 Microsoft