Строки стандартных числовых форматов
Обновлен: Ноябрь 2007
Строки стандартных числовых форматов служат для форматирования стандартных числовых типов. Стандартная строка числового формата имеет вид Axx, где A является символом буквы, называемой спецификатором, а xx является опциональным целым числом, называемым спецификатором точности. Спецификатор точности находится в диапазоне от 0 до 99 и влияет на число цифр в результате. Любая строка числового формата, содержащая более одной буквы, включая пробелы, интерпретируется как строка пользовательского числового формата.
В следующей таблице описаны спецификаторы стандартных числовых форматов и отображены примеры выходных данных, производимых каждым спецификатором формата. Дополнительные сведения содержатся в разделе примечания, расположенном после таблицы.
Примечания
Настройки панели управления
Параметры элемента панели управления Язык и региональные стандарты влияют на выходную строку, получаемую в результате операции форматирования. Эти параметры используются для инициализации объекта NumberFormatInfo, связанного с текущими языком и региональными параметрами потока, а текущие язык и региональные параметры потока предоставляют значения, которые используются для управления форматированием. Результирующие строки будут различаться на компьютерах с разными настройками.
Кроме того, если конструктор CultureInfo.CultureInfo(String) используется для создания нового объекта CultureInfo, представляющего региональные параметры, аналогичные текущим параметрам системы, то все настройки, установленные в элементе Язык и региональные параметры панели управления, будут применяться к новому объекту CultureInfo. Можно использовать метод CultureInfo.CreateSpecificCulture для создания CultureInfo, который не отражает настроек системы.
Свойства NumberFormatInfo
На форматирование влияют свойства текущего объекта NumberFormatInfo, который предоставляется неявно текущими языком и региональными параметрами текущего потока или явно параметром IFormatProvider метода, который вызывает форматирование. Укажите объект NumberFormatInfo или объект CultureInfo для этого параметра.
Целочисленные типы и типы с плавающей запятой
Некоторые описания спецификаторов стандартных числовых форматов относятся к целочисленным типам и типам с плавающей запятой. Целочисленными типами являются Byte, SByte, Int16, Int32, Int64, UInt16, UInt32 и UInt64. Числовыми типами с плавающей запятой являются Decimal, Single и Double.
Бесконечности действительных чисел с плавающей запятой и NaN
Обратите внимание, что независимо от строки формата, если значение типа с плавающей запятойSingle или Double является плюс бесконечностью, минус бесконечностью или не является числом (NaN), в отформатированной строке является значением соответствующим PositiveInfinitySymbol, NegativeInfinitySymbol, или свойству NaNSymbol, которые указаны в данный момент соответствующим объектом NumberFormatInfo.
Пример
В следующем примере целочисленное значение и числовое значение с плавающей запятой форматируются с помощью языка и региональных параметров en-us и всех спецификаторов стандартного числового формата. В этом примере используются два конкретных числовых типа, но схожие результаты будут получены и для любого из базовых числовых типов (Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Decimal, Single и Double).
Option Strict On
Imports System.Globalization
Imports System.Threading
Module NumericFormats
Public Sub Main()
' Display string representations of numbers for en-us culture
Dim ci As New CultureInfo("en-us")
' Output floating point values
Dim floating As Double = 10761.937554
Console.WriteLine("C: {0}", _
floating.ToString("C", ci)) ' Displays "C: $10,761.94"
Console.WriteLine("E: {0}", _
floating.ToString("E03", ci)) ' Displays "E: 1.076E+004"
Console.WriteLine("F: {0}", _
floating.ToString("F04", ci)) ' Displays "F: 10761.9376"
Console.WriteLine("G: {0}", _
floating.ToString("G", ci)) ' Displays "G: 10761.937554"
Console.WriteLine("N: {0}", _
floating.ToString("N03", ci)) ' Displays "N: 10,761.938"
Console.WriteLine("P: {0}", _
(floating/10000).ToString("P02", ci)) ' Displays "P: 107.62 %"
Console.WriteLine("R: {0}", _
floating.ToString("R", ci)) ' Displays "R: 10761.937554"
Console.WriteLine()
' Output integral values
Dim integral As Integer = 8395
Console.WriteLine("C: {0}", _
integral.ToString("C", ci)) ' Displays "C: $8,395.00"
Console.WriteLine("D: {0}", _
integral.ToString("D6")) ' Displays D: 008395""
Console.WriteLine("E: {0}", _
integral.ToString("E03", ci)) ' Displays "E: 8.395E+003"
Console.WriteLine("F: {0}", _
integral.ToString("F01", ci)) ' Displays "F: 8395.0"
Console.WriteLine("G: {0}", _
integral.ToString("G", ci)) ' Displays "G: 8395"
Console.WriteLine("N: {0}", _
integral.ToString("N01", ci)) ' Displays "N: 8,395.0"
Console.WriteLine("P: {0}", _
(integral/10000).ToString("P02", ci)) ' Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}", _
integral.ToString("X", ci)) ' Displays "X: 0x20CB"
Console.WriteLine()
End Sub
End Module
using System;
using System.Globalization;
using System.Threading;
public class NumericFormats
{
public static void Main()
{
// Display string representations of numbers for en-us culture
CultureInfo ci = new CultureInfo("en-us");
// Output floating point values
double floating = 10761.937554;
Console.WriteLine("C: {0}",
floating.ToString("C", ci)); // Displays "C: $10,761.94"
Console.WriteLine("E: {0}",
floating.ToString("E03", ci)); // Displays "E: 1.076E+004"
Console.WriteLine("F: {0}",
floating.ToString("F04", ci)); // Displays "F: 10761.9376"
Console.WriteLine("G: {0}",
floating.ToString("G", ci)); // Displays "G: 10761.937554"
Console.WriteLine("N: {0}",
floating.ToString("N03", ci)); // Displays "N: 10,761.938"
Console.WriteLine("P: {0}",
(floating/10000).ToString("P02", ci)); // Displays "P: 107.62 %"
Console.WriteLine("R: {0}",
floating.ToString("R", ci)); // Displays "R: 10761.937554"
Console.WriteLine();
// Output integral values
int integral = 8395;
Console.WriteLine("C: {0}",
integral.ToString("C", ci)); // Displays "C: $8,395.00"
Console.WriteLine("D: {0}",
integral.ToString("D6", ci)); // Displays D: 008395""
Console.WriteLine("E: {0}",
integral.ToString("E03", ci)); // Displays "E: 8.395E+003"
Console.WriteLine("F: {0}",
integral.ToString("F01", ci)); // Displays "F: 8395.0"
Console.WriteLine("G: {0}",
integral.ToString("G", ci)); // Displays "G: 8395"
Console.WriteLine("N: {0}",
integral.ToString("N01", ci)); // Displays "N: 8,395.0"
Console.WriteLine("P: {0}",
(integral/10000).ToString("P02", ci)); // Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}",
integral.ToString("X", ci)); // Displays "X: 0x20CB"
Console.WriteLine();
}
}
См. также
Основные понятия
Строки настраиваемых числовых форматов