NumberFormatInfo.NumberGroupSizes 属性

获取或设置数值中小数点左边每一组的位数。

**命名空间:**System.Globalization
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Property NumberGroupSizes As Integer()
用法
Dim instance As NumberFormatInfo
Dim value As Integer()

value = instance.NumberGroupSizes

instance.NumberGroupSizes = value
public int[] NumberGroupSizes { get; set; }
public:
property array<int>^ NumberGroupSizes {
    array<int>^ get ();
    void set (array<int>^ value);
}
/** @property */
public int[] get_NumberGroupSizes ()

/** @property */
public void set_NumberGroupSizes (int[] value)
public function get NumberGroupSizes () : int[]

public function set NumberGroupSizes (value : int[])

属性值

数值中小数点左边每一组的位数。InvariantInfo 的默认值是一个一维数组,该数组只包含一个设置为 3 的元素。

异常

异常类型 条件

ArgumentNullException

该属性被设置为 空引用(在 Visual Basic 中为 Nothing)。

ArgumentException

试图设置该属性,但此数组包含一个小于 0 或大于 9 的项。

- 或 -

试图设置该属性,但此数组包含一个设置为 0 的项(最后一项除外)。

InvalidOperationException

设置该属性,并且 NumberFormatInfo 是只读的。

备注

一维数组中的每个元素都必须是从 1 到 9 的整数。最后一个元素可以是 0。

数组的第一个元素定义紧靠 NumberDecimalSeparator 左边的最低有效数字组中的元素数。后面的每个元素指示前一组左边的下一个有效数字组。如果数组的最后一个元素不为 0,则将根据数组中的最后一个元素对其余的数字进行分组。如果最后一个元素为 0,则不对其余数字进行分组。

例如,如果该数组包含 { 3, 4, 5 },则对数字的分组将类似于“55,55555,55555,55555,4444,333.00”。如果该数组包含 { 3, 4, 0 },则对数字的分组将类似于“55555555555555555,4444,333.00”。

示例

下面的代码示例演示了更改 NumberGroupSizes 属性的结果。

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 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 'Main 

End Class 'NumberFormatInfoSample



'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
*/
   
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
*/
import System.*;
import System.Globalization.*;

class NumberFormatInfoSample
{
    public static void main(String[] args)
    {
        // Gets a NumberFormatInfo associated with the en-US culture.
        NumberFormatInfo nfi = 
            (new CultureInfo("en-US", false)).get_NumberFormat();
        // Displays a value with the default separator (".").
        Int64 myInt = (Int64)(123456789012345L);
        Console.WriteLine(myInt.ToString("N", nfi));
        // Displays the same value with different groupings.
        int mySizes1[] =  { 2, 3, 4 };
        int mySizes2[] =  { 2, 3, 0 };
        nfi.set_NumberGroupSizes(mySizes1);
        Console.WriteLine(myInt.ToString("N", nfi));
        nfi.set_NumberGroupSizes(mySizes2);
        Console.WriteLine(myInt.ToString("N", nfi));
    } //main 
} //NumberFormatInfoSample

/* 
This code produces the following output.

123,456,789,012,345.00
12,3456,7890,123,45.00
1234567890,123,45.00
*/

下面的代码示例使用不同的 NumberGroupSizes 数组打印一个值。

Imports System
Imports System.Globalization
Imports Microsoft.VisualBasic

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 
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
*/
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
*/
import System
import System.Globalization
import System.Text

// Creates a new NumberFormatinfo.
var myNfi : NumberFormatInfo = new NumberFormatInfo()

// Takes a long value.
var myInt : long = 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 = [2, 3, 4]
Console.WriteLine("Grouping ( {0} )\t:\t{1}", PrintArraySet(myNfi.NumberGroupSizes), myInt.ToString("N", myNfi))

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


function PrintArraySet(myArr : int[]) : String{
  var myStr : StringBuilder = new StringBuilder()
  myStr.Append(myArr[0].ToString())
  for(var i = 1; i < myArr.Length; i++){
      myStr.Append(", " + myArr[i].ToString())
  }
  return myStr.ToString()
}

// 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 

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

NumberFormatInfo 类
NumberFormatInfo 成员
System.Globalization 命名空间
NumberFormatInfo.NumberDecimalDigits 属性
NumberFormatInfo.NumberDecimalSeparator 属性
NumberFormatInfo.NumberGroupSeparator 属性
NumberFormatInfo.NaNSymbol 属性
NumberNegativePattern
NumberFormatInfo.CurrencyGroupSizes 属性
PercentGroupSizes