PercentGroupSizes Property

NumberFormatInfo.PercentGroupSizes Property

Gets or sets the number of digits in each group to the left of the decimal in percent values.

[Visual Basic]
Public Property PercentGroupSizes As Integer ()
[C#]
public int[] PercentGroupSizes {get; set;}
[C++]
public: __property int get_PercentGroupSizes();
public: __property void set_PercentGroupSizes(int __gc[]);
[JScript]
public function get PercentGroupSizes() : int[];
public function set PercentGroupSizes(int[]);

Property Value

The number of digits in each group to the left of the decimal in percent values. The default for InvariantInfo is a one-dimensional array with only one element, which is set to 3.

Exceptions

Exception Type Condition
ArgumentNullException The property is being set to a null reference (Nothing in Visual Basic).
ArgumentException The property is being set and the array contains an entry that is less than 0 or greater than 9.

-or-

The property is being set and the array contains an entry, other than the last entry, that is set to 0.

InvalidOperationException The property is being set and the NumberFormatInfo is read-only.

Remarks

Every element in the one-dimensional array must be an integer from 1 through 9. The last element can be 0.

The first element of the array defines the number of elements in the least significant group of digits immediately to the left of the PercentDecimalSeparator. Each subsequent element refers to the next significant group of digits to the left of the previous group. If the last element of the array is not 0, the remaining digits are grouped based on the last element of the array. If the last element is 0, the remaining digits are not grouped.

For example, if the array contains { 3, 4, 5 }, the digits will be grouped similar to "55,55555,55555,55555,4444,333.00%". If the array contains { 3, 4, 0 }, the digits will be grouped similar to "55555555555555555,4444,333.00%".

Example

[Visual Basic, C#, C++] The following code example demonstrates the effect of changing the PercentGroupSizes property.

[Visual Basic] 
Imports System
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 [Double] = 123456789012345.6789
      Console.WriteLine(myInt.ToString("P", nfi))

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

   End Sub 'Main 

End Class 'NumberFormatInfoSample


'This code produces the following output.

'

'12,345,678,901,234,600.00 %

'1234,5678,9012,346,00.00 %

'123456789012,346,00.00 %



[C#] 
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 (".").
      Double myInt = 123456789012345.6789;
      Console.WriteLine( myInt.ToString( "P", nfi ) );

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

   }
}


/* 
This code produces the following output.

12,345,678,901,234,600.00 %
1234,5678,9012,346,00.00 %
123456789012,346,00.00 %
*/
   

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;

int main()
{
   // Gets a NumberFormatInfo associated with the en-US culture.
   CultureInfo * MyCI = new CultureInfo(S"en-US", false);
   NumberFormatInfo* nfi = MyCI -> NumberFormat;

   // Displays a value with the default separator (S".").
   Double myInt = 123456789012345.6789;
   Console::WriteLine(myInt.ToString(S"P", nfi));

   // Displays the same value with different groupings.
   Int32 mySizes1[] = {2, 3, 4};
   Int32 mySizes2[] = {2, 3, 0};
   nfi -> PercentGroupSizes = mySizes1;
   Console::WriteLine(myInt.ToString(S"P", nfi));
   nfi -> PercentGroupSizes = mySizes2;
   Console::WriteLine(myInt.ToString(S"P", nfi));
}
/*
This code produces the following output.

12, 345, 678, 901, 234, 600.00 %
1234, 5678, 9012, 346, 00.00 %
123456789012, 346, 00.00 %
*/ 

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard

See Also

NumberFormatInfo Class | NumberFormatInfo Members | System.Globalization Namespace | PercentDecimalDigits | PercentDecimalSeparator | PercentGroupSeparator | PercentSymbol | PercentNegativePattern | PercentPositivePattern | CurrencyGroupSizes | NumberGroupSizes

Show:
© 2016 Microsoft