Compartir a través de


NumberFormatInfo.NumberGroupSizes Propiedad

Definición

Obtiene o establece el número de dígitos en cada grupo a la izquierda de la coma decimal en valores numéricos.

public:
 property cli::array <int> ^ NumberGroupSizes { cli::array <int> ^ get(); void set(cli::array <int> ^ value); };
public int[] NumberGroupSizes { get; set; }
member this.NumberGroupSizes : int[] with get, set
Public Property NumberGroupSizes As Integer()

Valor de propiedad

Int32[]

Número de dígitos en cada grupo a la izquierda de la coma decimal en valores numéricos. El valor predeterminado de InvariantInfo es una matriz unidimensional con un único elemento, que se establece en 3.

Excepciones

La propiedad se establece en null.

La propiedad se establece y la matriz contiene una entrada que es menor que 0 o mayor que 9.

O bien

La propiedad se establece y la matriz contiene una entrada distinta a la última entrada que se establece en 0.

La propiedad se está estableciendo y el objeto NumberFormatInfo es de solo lectura.

Ejemplos

En el ejemplo siguiente se muestra el efecto de cambiar la NumberGroupSizes propiedad .

using namespace System;
using namespace System::Globalization;
int main()
{
   
   // Gets a NumberFormatInfo associated with the en-US culture.
   CultureInfo^ MyCI = gcnew CultureInfo( "en-US",false );
   NumberFormatInfo^ nfi = MyCI->NumberFormat;
   
   // Displays a value with the default separator (S".").
   Int64 myInt = 123456789012345;
   Console::WriteLine( myInt.ToString( "N", nfi ) );
   
   // Displays the same value with different groupings.
   array<Int32>^mySizes1 = {2,3,4};
   array<Int32>^mySizes2 = {2,3,0};
   nfi->NumberGroupSizes = mySizes1;
   Console::WriteLine( myInt.ToString( "N", nfi ) );
   nfi->NumberGroupSizes = mySizes2;
   Console::WriteLine( myInt.ToString( "N", nfi ) );
}

/*
This code produces the following output.
123, 456, 789, 012, 345.00
12, 3456, 7890, 123, 45.00
1234567890, 123, 45.00
*/
using System;
using System.Globalization;

class NumberFormatInfoSample {

   public static void Main() {

      // Gets a NumberFormatInfo associated with the en-US culture.
      NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat;

      // Displays a value with the default separator (".").
      Int64 myInt = 123456789012345;
      Console.WriteLine( myInt.ToString( "N", nfi ) );

      // Displays the same value with different groupings.
      int[] mySizes1 = {2,3,4};
      int[] mySizes2 = {2,3,0};
      nfi.NumberGroupSizes = mySizes1;
      Console.WriteLine( myInt.ToString( "N", nfi ) );
      nfi.NumberGroupSizes = mySizes2;
      Console.WriteLine( myInt.ToString( "N", nfi ) );
   }
}


/*
This code produces the following output.

123,456,789,012,345.00
12,3456,7890,123,45.00
1234567890,123,45.00
*/
Imports System.Globalization

Class NumberFormatInfoSample

   Public Shared Sub Main()

      ' Gets a NumberFormatInfo associated with the en-US culture.
      Dim nfi As NumberFormatInfo = New CultureInfo("en-US", False).NumberFormat

      ' Displays a value with the default separator (".").
      Dim myInt As Int64 = 123456789012345
      Console.WriteLine(myInt.ToString("N", nfi))

      ' Displays the same value with different groupings.
      Dim mySizes1 As Integer() =  {2, 3, 4}
      Dim mySizes2 As Integer() =  {2, 3, 0}
      nfi.NumberGroupSizes = mySizes1
      Console.WriteLine(myInt.ToString("N", nfi))
      nfi.NumberGroupSizes = mySizes2
      Console.WriteLine(myInt.ToString("N", nfi))

   End Sub

End Class


'This code produces the following output.
'
'123,456,789,012,345.00
'12,3456,7890,123,45.00
'1234567890,123,45.00

En el ejemplo siguiente se imprime un valor mediante matrices diferentes NumberGroupSizes .

using namespace System;
using namespace System::Globalization;
String^ PrintArraySet( array<Int32>^myArr )
{
   String^ myStr = nullptr;
   myStr = myArr[ 0 ].ToString();
   for ( int i = 1; i < myArr->Length; i++ )
      myStr = String::Concat( myStr, ", ", myArr[ i ].ToString() );
   return myStr;
}

int main()
{
   
   // Creates a new NumberFormatinfo.
   NumberFormatInfo^ myNfi = gcnew NumberFormatInfo;
   
   // Takes a long value.
   Int64 myInt = 123456789012345;
   
   // Displays the value with default formatting.
   Console::WriteLine( "Default  \t\t:\t{0}", myInt.ToString( "N", myNfi ) );
   
   // Displays the value with three elements in the GroupSize array.
   array<Int32>^newInts1 = {2,3,4};
   myNfi->NumberGroupSizes = newInts1;
   Console::WriteLine( "Grouping ( {0} )\t:\t{1}", PrintArraySet( myNfi->NumberGroupSizes ), myInt.ToString( "N", myNfi ) );
   
   // Displays the value with zero as the last element in the GroupSize array.
   array<Int32>^newInts2 = {2,4,0};
   myNfi->NumberGroupSizes = newInts2;
   Console::WriteLine( "Grouping ( {0} )\t:\t{1}", PrintArraySet( myNfi->NumberGroupSizes ), myInt.ToString( "N", myNfi ) );
}

/*
This code produces the following output. 

Default               :       123, 456, 789, 012, 345.00
Grouping (2, 3, 4)    :       12, 3456, 7890, 123, 45.00
Grouping (2, 4, 0)    :       123456789, 0123, 45.00
*/
using System;
using System.Globalization;
class SamplesNumberFormatInfo  {

   public static void Main()  {

      // Creates a new NumberFormatinfo.
      NumberFormatInfo myNfi = new NumberFormatInfo();

      // Takes a long value.
      Int64 myInt = 123456789012345;

      // Displays the value with default formatting.
      Console.WriteLine( "Default  \t\t:\t{0}", myInt.ToString( "N", myNfi ) );

      // Displays the value with three elements in the GroupSize array.
      myNfi.NumberGroupSizes = new int[]  { 2, 3, 4 };
      Console.WriteLine( "Grouping ( {0} )\t:\t{1}",
         PrintArraySet( myNfi.NumberGroupSizes ), myInt.ToString( "N", myNfi ) );

      // Displays the value with zero as the last element in the GroupSize array.
      myNfi.NumberGroupSizes = new int[]  { 2, 4, 0 };
      Console.WriteLine( "Grouping ( {0} )\t:\t{1}",
         PrintArraySet( myNfi.NumberGroupSizes ), myInt.ToString( "N", myNfi ) );
   }

   public static string PrintArraySet( int[] myArr )  {
      string myStr = null;
      myStr = myArr[0].ToString();
      for ( int i = 1; i < myArr.Length; i++ )
         myStr += ", " + myArr[i].ToString();
      return( myStr );
   }
}
/*
This code produces the following output.

Default                 :       123,456,789,012,345.00
Grouping ( 2, 3, 4 )    :       12,3456,7890,123,45.00
Grouping ( 2, 4, 0 )    :       123456789,0123,45.00
*/
Imports System.Globalization

Class SamplesNumberFormatInfo
    
    Public Shared Sub Main()
        
        ' Creates a new NumberFormatinfo.
        Dim myNfi As New NumberFormatInfo()
        
        ' Takes a long value.
        Dim myInt As Int64 = 123456789012345
        
        ' Displays the value with default formatting.
        Console.WriteLine("Default  " + ControlChars.Tab + ControlChars.Tab _
           + ":" + ControlChars.Tab + "{0}", myInt.ToString("N", myNfi))
        
        ' Displays the value with three elements in the GroupSize array.
        myNfi.NumberGroupSizes = New Integer() {2, 3, 4}
        Console.WriteLine("Grouping ( {0} )" + ControlChars.Tab + ":" _
           + ControlChars.Tab + "{1}", _
           PrintArraySet(myNfi.NumberGroupSizes), myInt.ToString("N", myNfi))
        
        ' Displays the value with zero as the last element in the GroupSize array.
        myNfi.NumberGroupSizes = New Integer() {2, 4, 0}
        Console.WriteLine("Grouping ( {0} )" + ControlChars.Tab + ":" _
           + ControlChars.Tab + "{1}", _
           PrintArraySet(myNfi.NumberGroupSizes), myInt.ToString("N", myNfi))
    End Sub
    
    
    Public Shared Function PrintArraySet(myArr() As Integer) As String
        Dim myStr As String = Nothing
        myStr = myArr(0).ToString()
        Dim i As Integer
        For i = 1 To myArr.Length - 1
            myStr += ", " + myArr(i).ToString()
        Next i
        Return myStr
    End Function
End Class

' This code produces the following output. 
' 
' Default                 :       123,456,789,012,345.00
' Grouping ( 2, 3, 4 )    :       12,3456,7890,123,45.00
' Grouping ( 2, 4, 0 )    :       123456789,0123,45.00

Comentarios

El valor de la NumberGroupSizes propiedad afecta al resultado de los valores numéricos con formato mediante "N". Si se usa una cadena de formato numérico personalizado u otras cadenas de formato numérico estándar, se omite el valor de la NumberGroupSizes propiedad.

Cada elemento de la matriz unidimensional debe ser un entero comprendido entre 1 y 9. El último elemento puede ser 0.

El primer elemento de la matriz define el número de elementos del grupo de dígitos menos significativo inmediatamente a la izquierda de NumberDecimalSeparator. Cada elemento subsiguiente hace referencia al siguiente grupo significativo de dígitos a la izquierda del grupo anterior. Si el último elemento de la matriz no es 0, los dígitos restantes se agrupan en función del último elemento de la matriz. Si el último elemento es 0, los dígitos restantes no se agrupan.

Por ejemplo, si la matriz contiene { 3, 4, 5 }, los dígitos se agrupan de forma similar a "55,55555,55555,5555,4444,333,00". Si la matriz contiene { 3, 4, 0 }, los dígitos se agrupan de forma similar a "555555555555555555555,4444,333.00".

Se aplica a

Consulte también