标准数字格式字符串.docx_第1页
标准数字格式字符串.docx_第2页
标准数字格式字符串.docx_第3页
标准数字格式字符串.docx_第4页
标准数字格式字符串.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

标准数字格式字符串.NET Framework 4 其他版本 Visual Studio 2008 Visual Studio 2005 Silverlight 更新:2011 年 3 月标准数字格式字符串用于格式化通用数值类型。 标准数字格式字符串采用 Axx 的形式,其中 A 是称为格式说明符的字母型字符,xx 是称为精度说明符的可选整数。 精度说明符的范围从 0 到 99,并且影响结果中的位数。 任何包含一个以上字母字符(包括空白)的数字格式字符串都被解释为自定义数字格式字符串。 有关更多信息,请参见自定义数字格式字符串。 所有数字类型的 ToString 方法的某些重载支持标准数字格式字符串。 例如,可将数字格式字符串提供给 Int32 类型的 ToString(String) 方法和 ToString(String, IFormatProvider) 方法。 .NET Framework 复合格式化功能也支持标准数字格式字符串,该功能由 Console 和 StreamWriter 类的某些 Write 和 WriteLine 方法、String.Format 方法以及 StringBuilder.AppendFormat 方法使用。 提示可以下载 Format Utility(格式实用工具),它是一种使您能够将格式字符串应用于数字或日期和时间值并显示结果字符串的应用程序。下表描述标准的数字格式说明符并显示由每个格式说明符产生的示例输出。 有关使用标准数字格式字符串的其他信息,请参见注释一节;有关使用方法的完整演示,请参见示例一节。 格式说明符名称说明示例“C”或“c”Currency结果:货币值。受以下类型支持:所有数值类型。精度说明符:小数位数。默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。更多信息:货币(“C”)格式说明符。123.456 (C, en-US) - $123.46123.456 (C, fr-FR) - 123,46 123.456 (C, ja-JP) - 123-123.456 (C3, en-US) - ($123.456)-123.456 (C3, fr-FR) - -123,456 -123.456 (C3, ja-JP) - -123.456“D”或“d”Decimal结果:整型数字,负号可选。受以下类型支持:仅整型。精度说明符:最小位数。默认值精度说明符:所需的最小位数。更多信息:十进制(“D”)格式说明符。1234 (D) - 1234-1234 (D6) - -001234“E”或“e”指数(科学型)结果:指数记数法。受以下类型支持:所有数值类型。精度说明符:小数位数。默认值精度说明符:6。更多信息:指数(“E”)格式说明符。1052.0329112756 (E, en-US) - 1.052033E+0031052.0329112756 (e, fr-FR) - 1,052033e+003-1052.0329112756 (e2, en-US) - -1.05e+003-1052.0329112756 (E2, fr_FR) - -1,05E+003“F”或“f”定点结果:整数和小数,负号可选。受以下类型支持:所有数值类型。精度说明符:小数位数。默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。更多信息:定点(“F”)格式说明符。1234.567 (F, en-US) - 1234.571234.567 (F, de-DE) - 1234,571234 (F1, en-US) - 1234.01234 (F1, de-DE) - 1234,0-1234.56 (F4, en-US) - -1234.5600-1234.56 (F4, de-DE) - -1234,5600“G”或“g”常规结果:最紧凑的定点表示法或科学记数法。受以下类型支持:所有数值类型。精度说明符:有效位数。默认值精度说明符:取决于数值类型。更多信息:常规(“G”)格式说明符。-123.456 (G, en-US) - -123.456123.456 (G, sv-SE) - -123,456123.4546 (G4, en-US) - 123.5123.4546 (G4, sv-SE) - 123,5-1.234567890e-25 (G, en-US) - -1.23456789E-25-1.234567890e-25 (G, sv-SE) - -1,23456789E-25“N”或“n”Number结果:整数和小数、组分隔符和小数分隔符,负号可选。受以下类型支持:所有数值类型。精度说明符:所需的小数位数。默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。更多信息:数字(“N”)格式说明符。1234.567 (N, en-US) - 1,234.571234.567 (N, ru-RU) - 1 234,571234 (N, en-US) - 1,234.01234 (N, ru-RU) - 1 234,0-1234.56 (N, en-US) - -1,234.560-1234.56 (N, ru-RU) - -1 234,560“P”或“p”百分比结果:乘以 100 并显示百分比符号的数字。受以下类型支持:所有数值类型。精度说明符:所需的小数位数。默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。更多信息:百分比(“P”)格式说明符。1 (P, en-US) - 100.00 %1 (P, fr-FR) - 100,00 %-0.39678 (P1, en-US) - -39.7 %-0.39678 (P1, fr-FR) - -39,7 %“R”或“r”往返过程结果:可以往返至相同数字的字符串。受以下类型支持:Single、Double 和 BigInteger。精度说明符:忽略。更多信息:往返过程(“R”)格式说明符。123456789.12345678 (R) - 123456789.12345678-1234567890.12345678 (R) - -1234567890.1234567“X”或“x”十六进制结果:十六进制字符串。受以下类型支持:仅整型。精度说明符:结果字符串中的位数。更多信息:十六进制(“X”)格式说明符。255 (X) - FF-1 (x) - ff255 (x4) - 00ff-1 (X4) - 00FF任何其他单个字符未知说明符结果:在运行时引发 FormatException。使用标准数字格式字符串 可采用以下两种方式之一使用标准数字格式字符串定义数值的格式: 可以传递给拥有 format 参数的 ToString 方法的重载。 以下示例在当前(在本例中,为 en-US)区域性中将数值的格式设置为货币字符串。 C#VB复制 decimal value = 123.456m;Console.WriteLine(value.ToString(C2);/ Displays $123.46它作为与 String.Format、Console.WriteLine 和 StringBuilder.AppendFormat 等方法一起使用的格式项中的 formatString 参数提供。 有关更多信息,请参见复合格式。 下面的示例使用格式项在字符串中插入货币值。 C#VB复制 decimal value = 123.456m;Console.WriteLine(Your account balance is 0:C2., value);/ Displays Your account balance is $123.46.以下各节提供有关每个标准数字格式字符串的详细信息。 货币(“C”)格式说明符 “C”(或货币)格式说明符将数字转换为表示货币金额的字符串。 精度说明符指示结果字符串中的所需小数位数。 如果省略精度说明符,则默认精度由 NumberFormatInfo.CurrencyDecimalDigits 属性定义。 如果要设置格式的值的小数位数多于指定或默认数量,将在结果字符串中舍入小数值。 如果指定的小数位数右侧的值大于或等于 5,则结果字符串中的最后一位数将向远离零的一侧舍入。 结果字符串受当前 NumberFormatInfo 对象的格式信息的影响。 下表列出了 NumberFormatInfo 属性,这些属性控制返回字符串的格式。 NumberFormatInfo 属性 说明 CurrencyPositivePattern 定义正值的货币符号的位置。 CurrencyNegativePattern 定义负值的货币符号的位置,并指定负号由括号表示还是由 NegativeSign 属性表示。 NegativeSign 如果 CurrencyNegativePattern 指示不使用括号,则定义使用负号。 CurrencySymbol 定义货币符号。 CurrencyDecimalDigits 定义货币值中的默认小数位数。 可使用精度说明符重写此值。 CurrencyDecimalSeparator 定义分隔整数位和小数位的字符串。 CurrencyGroupSeparator 定义分隔整数的组的字符串。 CurrencyGroupSizes 指定在组中显示的整数位数。 下面的示例使用货币格式说明符设置 Double 值的格式。 C#VB复制 double value = 12345.6789;Console.WriteLine(value.ToString(C, CultureInfo.CurrentCulture);Console.WriteLine(value.ToString(C3, CultureInfo.CurrentCulture);Console.WriteLine(value.ToString(C3, CultureInfo.CreateSpecificCulture(da-DK);/ The example displays the following output on a system whose/ current culture is English (United States):/ $12,345.68/ $12,345.679/ kr 12.345,679返回表首 十进制(“D”)格式说明符 “D”(或十进制)格式说明符将数字转换为十进制数字 (0-9) 的字符串,如果数字为负,则前面加负号。 只有整型才支持此格式。 精度说明符指示结果字符串中所需的最少数字个数。 如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。 如果未指定精度说明符,则默认值为表示不带前导零的整数所需的最小值。 结果字符串受当前 NumberFormatInfo 对象的格式信息的影响。 如下表所示,一个属性会影响结果字符串的格式。 NumberFormatInfo 属性 说明 NegativeSign 定义指示数字为负值的字符串。 下面的示例使用十进制格式说明符设置 Int32 值的格式。 C#VB复制 int value; value = 12345;Console.WriteLine(value.ToString(D);/ Displays 12345Console.WriteLine(value.ToString(D8);/ Displays 00012345value = -12345;Console.WriteLine(value.ToString(D);/ Displays -12345Console.WriteLine(value.ToString(D8);/ Displays -00012345返回表首 指数(“E”)格式说明符 指数(“E”)格式说明符将数字转换为“-d.dddE+ddd”或“-d.ddde+ddd”形式的字符串,其中每个“d”表示一个数字 (0-9)。 如果该数字为负,则该字符串以减号开头。 小数点前总是恰好有一个数字。 精度说明符指示小数点后所需的位数。 如果省略精度说明符,则使用默认值,即小数点后六位数字。 格式说明符的大小写指示为指数加前缀“E”还是“e”。 指数总是由正号或负号以及最少三位数字组成。 如果需要,用零填充指数以满足最少三位数字的要求。 结果字符串受当前 NumberFormatInfo 对象的格式信息的影响。 下表列出了 NumberFormatInfo 属性,这些属性控制返回字符串的格式。 NumberFormatInfo 属性 说明 NegativeSign 定义表示数字对于系数和指数都为负值的字符串。 NumberDecimalSeparator 定义在系数中将整数位与小数位分隔的字符串。 PositiveSign 定义指示指数为正值的字符串。 下面的示例使用指数格式说明符设置 Double 值的格式。 C#VB复制 double value = 12345.6789;Console.WriteLine(value.ToString(E, CultureInfo.InvariantCulture);/ Displays 1.234568E+004Console.WriteLine(value.ToString(E10, CultureInfo.InvariantCulture);/ Displays 1.2345678900E+004Console.WriteLine(value.ToString(e4, CultureInfo.InvariantCulture);/ Displays 1.2346e+004Console.WriteLine(value.ToString(E, CultureInfo.CreateSpecificCulture(fr-FR);/ Displays 1,234568E+004返回表首 定点(“F”)格式说明符 定点(“F”)格式说明符将数字转换为“-ddd.ddd”形式的字符串,其中每个“d”表示一个数字 (0-9)。 如果该数字为负,则该字符串以减号开头。 精度说明符指示所需的小数位数。 如果省略精度说明符,则当前 NumberFormatInfo.NumberDecimalDigits 属性提供数值精度。 结果字符串受当前 NumberFormatInfo 对象的格式信息的影响。 下表列出了 NumberFormatInfo 对象的属性,这些属性控制结果字符串的格式。 NumberFormatInfo 属性 说明 NegativeSign 定义指示数字为负值的字符串。 NumberDecimalSeparator 定义将整数位与小数位分隔的字符串。 NumberDecimalDigits 定义默认小数位数。 可使用精度说明符重写此值。 下面的示例使用定点格式说明符设置 Double 和 Int32 值的格式。 C#VB复制 int integerNumber;integerNumber = 17843;Console.WriteLine(integerNumber.ToString(F, CultureInfo.InvariantCulture);/ Displays 17843.00integerNumber = -29541;Console.WriteLine(integerNumber.ToString(F3, CultureInfo.InvariantCulture);/ Displays -29541.000double doubleNumber;doubleNumber = 18934.1879;Console.WriteLine(doubleNumber.ToString(F, CultureInfo.InvariantCulture);/ Displays 18934.19Console.WriteLine(doubleNumber.ToString(F0, CultureInfo.InvariantCulture);/ Displays 18934doubleNumber = -1898300.1987;Console.WriteLine(doubleNumber.ToString(F1, CultureInfo.InvariantCulture); / Displays -1898300.2Console.WriteLine(doubleNumber.ToString(F3, CultureInfo.CreateSpecificCulture(es-ES);/ Displays -1898300,199 返回表首 常规(“G”)格式说明符 根据数字类型以及是否存在精度说明符,常规(“G”)格式说明符将数字转换为最紧凑的定点表示法或科学记数法。 精度说明符定义可以出现在结果字符串中的最大有效位数。 如果精度说明符被省略或为零,则数字的类型决定默认精度,如下表所示。 数值类型 默认值精度 Byte 或 SByte 3 位 Int16 或 UInt16 5 位 Int32 或 UInt32 10 位 Int64 19 位 UInt64 20 位 BigInteger 29 位 Single 7 位 Double 15 位 Decimal 29 位 如果用科学记数法表示数字时指数大于 -5 而且小于精度说明符,则使用定点表示法;否则使用科学记数法。 结果包含小数点(如果需要),并且忽略小数点后面的尾部零。 如果精度说明符存在,并且结果的有效位数超过指定精度,则通过舍入移除多余的尾部数字。 但是,如果数字是 Decimal 并且省略精度说明符,将总是使用定点表示法并保留尾部零。 使用科学记数法时,如果格式说明符是“G”,则结果的指数带前缀“E”;如果格式说明符是“g”,则结果的指数带前缀“e”。 指数最少包含两个数字。 这与由指数格式说明符生成的科学记数法的格式不同,后者在指数中最少包括三个数字。 结果字符串受当前 NumberFormatInfo 对象的格式信息的影响。 下表列出了 NumberFormatInfo 属性,这些属性控制结果字符串的格式。 NumberFormatInfo 属性 说明 NegativeSign 定义指示数字为负值的字符串。 NumberDecimalSeparator 定义将整数位与小数位分隔的字符串。 NumberDecimalDigits 定义默认小数位数。 可使用精度说明符重写此值。 PositiveSign 定义指示指数为正值的字符串。 下面的示例使用常规格式说明符设置各种浮点值的格式。 C#VB复制 double number;number = 12345.6789; Console.WriteLine(number.ToString(G, CultureInfo.InvariantCulture);/ Displays 12345.6789Console.WriteLine(number.ToString(G, CultureInfo.CreateSpecificCulture(fr-FR);/ Displays 12345,6789Console.WriteLine(number.ToString(G7, CultureInfo.InvariantCulture);/ Displays 12345.68 number = .0000023;Console.WriteLine(number.ToString(G, CultureInfo.InvariantCulture);/ Displays 2.3E-06 Console.WriteLine(number.ToString(G, CultureInfo.CreateSpecificCulture(fr-FR);/ Displays 2,3E-06number = .0023;Console.WriteLine(number.ToString(G, CultureInfo.InvariantCulture);/ Displays 0.0023number = 1234;Console.WriteLine(number.ToString(G2, CultureInfo.InvariantCulture);/ Displays 1.2E+03number = Math.PI;Console.WriteLine(number.ToString(G5, CultureInfo.InvariantCulture);/ Displays 3.1416 返回表首 数字(“N”)格式说明符 数字(N)格式说明符将数字转换为-d,ddd,ddd.ddd形式的字符串,其中-表示负数符号(如果需要),d表示数字 (0-9),,表示组分隔符,.表示小数点符号。 精度说明符指示小数点后所需的位数。 如果省略精度限定符,则小数位数由当前的 NumberFormatInfo.NumberDecimalDigits 属性来定义。 结果字符串受当前 NumberFormatInfo 对象的格式信息的影响。 下表列出了 NumberFormatInfo 属性,这些属性控制结果字符串的格式。 NumberFormatInfo 属性 说明 NegativeSign 定义指示数字为负值的字符串。 NumberNegativePattern 定义负值的格式,并指定负号由括号表示还是由 NegativeSign 属性表示。 NumberGroupSizes 指定在组分隔符之间显示的整数位数。 NumberGroupSeparator 定义分隔整数的组的字符串。 NumberDecimalSeparator 定义分隔整数位和小数位的字符串。 NumberDecimalDigits 定义默认小数位数。 可使用精度说明符重写此值。 下面的示例使用数字格式说明符设置各种浮点值的格式。 C#VB复制 double dblValue = -12445.6789;Console.WriteLine(dblValue.ToString(N, CultureInfo.InvariantCulture);/ Displays -12,445.68Console.WriteLine(dblValue.ToString(N1, CultureInfo.CreateSpecificCulture(sv-SE);/ Displays -12 445,7int intValue = 123456789;Console.WriteLine(intValue.ToString(N1, CultureInfo.InvariantCulture);/ Displays 123,456,789.0 返回表首 百分比(“P”)格式说明符 百分比(“P”)格式说明符将数字乘以 100 并将其转换为表示百分比的字符串。 精度说明符指示所需的小数位数。 如果省略精度说明符,则使用当前 PercentDecimalDigits 属性提供的默认数值精度。 下表列出了 NumberFormatInfo 属性,这些属性控制返回字符串的格式。 NumberFormatInfo 属性 说明 PercentPositivePattern 定义正值的百分比符号的位置。 PercentNegativePattern 定义负值的百分比符号和负号的位置。 NegativeSign 定义指示数字为负值的字符串。 PercentSymbol 定义百分比符号。 PercentDecimalDigits 定义百分比值中的默认小数位数。 可使用精度说明符重写此值。 PercentDecimalSeparator 定义分隔整数位和小数位的字符串。 PercentGroupSeparator 定义分隔整数的组的字符串。 PercentGroupSizes 指定在组中显示的整数位数。 下面的示例使用百分比格式说明符设置浮点值的格式。 C#VB复制 double number = .2468013;Console.WriteLine(number.ToString(P, CultureInfo.InvariantCulture);/ Displays 24.68 %Console.WriteLine(number.ToString(P, CultureInfo.CreateSpecificCulture(hr-HR);/ Displays 24,68% Console.WriteLine(number.ToString(P1, CultureInfo.InvariantCulture);/ Displays 24.7 %返回表首 往返过程(“R”)格式说明符 往返过程(“R”)格式说明符保证转换为字符串的数值将再次分析回相同的数值。 只有 Single、Double 和 BigInteger 类型支持此格式。 如果使用此说明符设置 BigInteger 值的格式,其字符串表示形式将包含 BigInteger 值中的所有有效位。 使用此说明符设置 Single 或 Double 值的格式时,将首先使用常规格式对其进行测试,如果是 Double,则采用 15 位精度,如果是 Single,则采用 7 位精度。 如果此值被成功地分析回相同的数值,则使用常规格式说明符来设置其格式。 如果未能将此值成功分析回相同的数值,则通过以下方式设置其格式:对 Double 使用 17 位精度,对 Single 使用 9 位精度。 尽管可以包括精度说明符,但会忽略它。 使用此说明符时,往返过程优先于精度。 结果字符串受当前 NumberFormatInfo 对象的格式信息的影响。 下表列出了 NumberFormatInfo 属性,这些属性控制结果字符串的格式。 NumberFormatInfo 属性 说明 NegativeSign 定义指示数字为负值的字符串。 NumberDecimalSeparator 定义将整数位与小数位分隔的字符串。 PositiveSign 定义指示指数为正值的字符串。 下面的示例使用往返过程格式说明符设置 Double 值的格式。 C#VB复制 double value;value = Math.PI;Console.WriteLine(value.ToString(r);/ Displays 3.1415926535897931Console.WriteLine(value.ToString(r, CultureInfo.CreateSpecificCulture(fr-FR);/ Displays 3,1415926535897931value = 1.623e-21;Console.WriteLine(value.ToString(r);/ Displays 1.623E-21返回表首 十六进制(“X”)格式说明符 十六进制(“X”)格式说明符将数字转换为十六进制数的字符串。 格式说明符的大小写指示对大于 9 的十六进制数使用大写字符还是小写字符。 例如,使用“X”产生“ABCDEF”,使用“x”产生“abcdef”。 只有整型才支持此格式。 精度说明符指示结果字符串中所需的最少数字个数。 如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。 结果字符串不受当前 NumberFormatInfo 对象的格式信息的影响。 下面的示例使用十六进制数法格式说明符设置 Int32 值的格式。 C#VB复制 int value; value = 0x2045e;Console.WriteLine(value.ToString(x);/ Displays 2045eConsole.WriteLine(value.ToString(X);/ Displays 2045EConsole.WriteLine(value.ToString(X8);/ Displays 0002045Evalue = 123456789;Console.WriteLine(value.ToString(X);/ Displays 75BCD15Console.WriteLine(value.ToString(X2);/ Displays 75BCD15返回表首 注释 控制面板设置控制面板中“区域和语言选项”项中的设置会影响由格式化操作产生的结果字符串。 这些设置用于初始化与当前线程区域性关联的 NumberFormatInfo 对象,当前线程区域性提供用于控制格式设置的值。 使用不同设置的计算机将生成不同的结果字符串。 此外,如果使用 CultureInfo.CultureInfo(String) 构造函数实例化一个新的 CultureInfo 对象以表示与当前的系统区域性相同的区域性,则通过控制面板中的“区域和语言选项”建立的任何自定义都将应用到新的 CultureInfo 对象。 可以使用 CultureInfo.CultureInfo(String, Boolean) 构造函数来创建不会反映系统的自定义项的 CultureInfo 对象。 NumberFormatInfo 属性格式设置受当前 NumberFormatInfo 对象的属性影响,它由当前线程区域性隐式提供或由调用格式设置的方法的 IFormatProvider 参数显示提供。 为该参数指定 NumberFormatInfo 或 CultureInfo 对象。 整型和浮点型数值类型对标准数字格式说明符的一些说明涉及到整型或浮点型数值类型。 整型数值类型包括 Byte、SByte、Int16、Int32、Int64、UInt16、UInt32、UInt64 和 BigInteger。 浮点型数值类型有 Decimal、Single 和 Double。 浮点型无穷大和 NaN无论格式字符串原来是什么值,只要 Single 或 Double 浮点类型的值为正无穷大、负无穷大或非数值 (NaN),格式字符串就分别是当前适用的 NumberFormatInfo 对象指定的 PositiveInfinitySymbol、NegativeInfinitySymbol 或 NaNSymbol 属性的值。 示例 下面的示例使用 en-US 区域性和所有标准数字格式说明符设置一个整型数值和一个浮点型数值的格式。 此示例使用两个特定的数值类型(Double 和 Int32),但对于任何一个其他数值基类型(Byte、SByte、Int16、Int32、Int64、UInt16、UInt32、UInt64、BigInteger、Decimal 和 Single)都将产生类似的结果。 C#VB复制 using System;using System.Globalization;using System.Threading;public

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论