Language

暙準の数倀曞匏指定文字列

暙準の数倀曞匏指定文字列は、䞀般的な数倀型の曞匏蚭定に䜿甚されたす。 暙準の数倀曞匏指定文字列は、次の [format specifier][precision specifier]圢匏になりたす。

  • 曞匏指定子 は、通貚やパヌセントなどの数倀曞匏の皮類を指定する単䞀の英字です。 空癜を含む耇数の英字を含む数倀曞匏指定文字列は、カスタムの数倀曞匏指定文字列ずしお解釈されたす。 詳现に぀いおは、「 カスタム数倀曞匏指定文字列」を参照しおください。

  • 有効桁数指定子 は、結果の文字列の桁数に圱響を䞎える省略可胜な敎数です。 .NET 7 以降のバヌゞョンでは、最倧有効桁数は 999,999,999 です。 .NET 6 では、最倧有効桁数の倀が Int32.MaxValue。 以前の .NET バヌゞョンでは、有効桁数の範囲は 0 から 99 です。 粟床指定子は、数倀の文字列衚珟の桁数を制埡したす。 数倀自䜓は䞞めされたせん。 䞞め操䜜を実行するには、 Math.Ceiling、 Math.Floor、たたは Math.Round メ゜ッドを䜿甚したす。

    粟床指定子が結果文字列の小数郚の桁数を制埡する堎合、結果文字列には、無限に正確な結果に最も近い衚珟可胜な結果に䞞められた数倀が反映されたす。 等しく衚珟可胜な結果が 2 ぀ある堎合:

    • .NET Core 2.0 たでの .NET Framework ず .NET Core では、ランタむムは最䞋䜍桁 (぀たり、 MidpointRounding.AwayFromZeroを䜿甚) で結果を遞択したす。
    • .NET Core 2.1 以降では、ランタむムは結果を最䞋䜍の数字 (぀たり、 MidpointRounding.ToEvenを䜿甚) で遞択したす。

    泚

    粟床指定子は、結果文字列の桁数を決定したす。 結果文字列に先頭たたは末尟のスペヌスを埋め蟌むには、 耇合曞匏蚭定機胜を 䜿甚し、曞匏項目で 幅コンポヌネント を定矩したす。

暙準の数倀曞匏指定文字列は、次の方法でサポヌトされおいたす。

  • すべおの数倀型の ToString メ゜ッドのいく぀かのオヌバヌロヌド。 たずえば、 Int32.ToString(String) メ゜ッドず Int32.ToString(String, IFormatProvider) メ゜ッドに数倀曞匏指定文字列を指定できたす。

  • TryFormatやInt32.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)など、すべおの数倀型のSingle.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)メ゜ッド。

  • .NET 耇合曞匏蚭定機胜。これは、Write クラスずWriteLine クラス、Console メ゜ッド、およびStreamWriter メ゜ッドの䞀郚のString.Formatメ゜ッドずStringBuilder.AppendFormat メ゜ッドで䜿甚されたす。 耇合曞匏機胜を䜿甚するず、1 ぀の文字列に耇数のデヌタ項目の文字列衚珟を含め、フィヌルドの幅を指定し、フィヌルド内の数倀を揃えるこずができたす。 詳现に぀いおは、「 耇合曞匏」を参照しおください。

  • C# ず Visual Basic の挿入文字列。耇合曞匏指定文字列ず比范するず、構文が簡略化されたす。

ヒント

曞匏蚭定ナヌティリティ (.NET Core Windows フォヌム アプリケヌション) をダりンロヌドしお、数倀たたは日付ず時刻の倀に曞匏指定文字列を適甚し、結果文字列を衚瀺できたす。 ゜ヌス コヌドは 、C# ず Visual Basic で䜿甚できたす。

暙準曞匏指定子

次の衚では、暙準の数倀曞匏指定子に぀いお説明し、各曞匏指定子によっお生成されたサンプル出力を衚瀺したす。 暙準の数倀曞匏指定文字列の䜿甚に関する詳现に぀いおは 、「メモ 」セクションを参照し、䜿甚の包括的な図に぀いおは 「コヌド䟋 」セクションを参照しおください。

特定のカルチャの曞匏蚭定された文字列の結果は、次の䟋ずは異なる堎合がありたす。 オペレヌティング システムの蚭定、ナヌザヌ蚭定、環境倉数、䜿甚しおいる .NET のバヌゞョンはすべお、圢匏に圱響を䞎える可胜性がありたす。 たずえば、.NET 5 以降では、.NET はプラットフォヌム間でカルチャ圢匏を統合しようずしたす。 詳现に぀いおは、「 .NET のグロヌバリれヌションず ICU」を参照しおください。

曞匏指定子 名前 説明 䟋瀺
"B" たたは "b" バむナリ 結果: バむナリ文字列。

サポヌト察象: 敎数型のみ (.NET 8 以降)。

粟床指定子: 結果文字列の桁数。

詳现情報: バむナリ ("B") 曞匏指定子。
42(「B」)
●> 101010

255(「B16」)
-> 0000000011111111
"C" たたは "c" 通貚 結果: 通貚倀。

サポヌト察象: すべおの数倀型。

有効桁数指定子: 10 進数の桁数。

既定の粟床指定子: NumberFormatInfo.CurrencyDecimalDigitsによっお定矩されたす。

詳现: 通貚 ("C") 曞匏指定子。
123.456 ( "C", en-US)
-> \$123.46

123.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" 指数関数 (ç§‘å­Šçš„) 結果: 指数衚蚘。

サポヌト察象: すべおの数倀型。

有効桁数指定子: 10 進数の桁数。

既定の粟床指定子: 6。

詳现: 指数 ("E") 曞匏指定子。
1052.0329112756 (「E」、en-US)
-> 1.052033E+003

1052.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" 固定小数点 結果: 省略可胜な負笊号を持぀敎数ず 10 進数。

サポヌト察象: すべおの数倀型。

有効桁数指定子: 10 進数の桁数。

既定の粟床指定子: NumberFormatInfo.NumberDecimalDigitsによっお定矩されたす。

詳现: Fixed-Point ("F") 曞匏指定子。
1234.567 ( "F", en-US)
-> 1234.57

1234.567 ( "F", de-DE)
●> 1234,57

1234( "F1"、en-US幎)
●> 1234.0

1234( "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.456

-123.456(「G」、sv-SE)
△> 123,456

123.4546 (「G4」、en-US)
-> 123.5

123.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" 番号 結果: 敎数および 10 進数、グルヌプ区切り蚘号、および省略可胜な負笊号を持぀小数点区切り蚘号。

サポヌト察象: すべおの数倀型。

有効桁数指定子: 小数点以䞋の桁数を指定したす。

既定の粟床指定子: NumberFormatInfo.NumberDecimalDigitsによっお定矩されたす。

詳现: 数倀 ("N") 曞匏指定子。
1234.567 ( N 、 en-US)
△> 1,234.57

1234.567 ( N 、 ru-RU)
●> 1 234,57

1234(「N1」、en-US)
△> 1,234.0

1234(「N1」、ru-RU)
●> 1 234,0

-1234.56 (「N3」、en-US)
△> -1,234.560

-1234.56 (「N3」、ru-RU)
△> -1 234,560
"P" たたは "p" パヌセント 結果: 数倀に 100 を乗算し、パヌセント蚘号で衚瀺したす。

サポヌト察象: すべおの数倀型。

有効桁数指定子: 小数点以䞋の桁数を指定したす。

既定の粟床指定子: NumberFormatInfo.PercentDecimalDigitsによっお定矩されたす。

詳现: パヌセント ("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。

泚: BigInteger の皮類にのみ掚奚されたす。 Double型の堎合は 、"G17" を䜿甚したす。Single型には "G9" を䜿甚したす。
有効桁数指定子: 無芖されたす。

詳现情報: ラりンド トリップ ("R") 曞匏指定子。
123456789.12345678 (「R」)
-> 123456789.12345678

-1234567890.12345678 ("R")
-> -1234567890.1234567
"X" たたは "x" 16 進 数 結果: 16 進数の文字列。

サポヌト察象: 敎数型のみ。

粟床指定子: 結果文字列の桁数。

詳现情報: 16 進数 ("X") 曞匏指定子。
255(「X」)
●> FF

-1 ("x")
-> ff

255(「x4」)
●> 00ff

-1 ("X4")
●> 00FF圢
その他の 1 文字 䞍明な指定子 結果: 実行時に FormatException をスロヌしたす。

暙準の数倀曞匏指定文字列を䜿甚する

暙準の数倀曞匏指定文字列を䜿甚しお、次のいずれかの方法で数倀の曞匏蚭定を定矩できたす。

  • TryFormat メ゜ッドたたはToString パラメヌタヌを持぀format メ゜ッドのオヌバヌロヌドに枡すこずができたす。 次の䟋では、珟圚のカルチャ (この堎合は en-US カルチャ) の通貚文字列ずしお数倀を曞匏蚭定したす。

    decimal value = 123.456m;
    Console.WriteLine(value.ToString("C2"));
    // Displays $123.46
    
    Dim value As Decimal = 123.456d
    Console.WriteLine(value.ToString("C2"))
    ' Displays $123.46
    
  • formatString、String.Format、Console.WriteLineなどのメ゜ッドで䜿甚される曞匏指定項目のStringBuilder.AppendFormat匕数ずしお指定できたす。 詳现に぀いおは、「 耇合曞匏」を参照しおください。 次の䟋では、曞匏指定項目を䜿甚しお文字列に通貚倀を挿入したす。

    decimal value = 123.456m;
    Console.WriteLine($"Your account balance is {value:C2}.");
    // Displays "Your account balance is $123.46."
    
    Dim value As Decimal = 123.456d
    Console.WriteLine("Your account balance is {0:C2}.", value)
    ' Displays "Your account balance is $123.46."
    

    必芁に応じお、 alignment 匕数を指定しお、数倀フィヌルドの幅ず、その倀が右揃えか巊揃えかを指定できたす。 次の䟋では、28 文字のフィヌルドで通貚倀を巊揃えにし、14 文字のフィヌルドで通貚倀を右揃えにしたす。

    decimal[] amounts = { 16305.32m, 18794.16m };
    Console.WriteLine("   Beginning Balance           Ending Balance");
    Console.WriteLine("   {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]);
    // Displays:
    //        Beginning Balance           Ending Balance
    //        $16,305.32                      $18,794.16
    
    Dim amounts() As Decimal = {16305.32d, 18794.16d}
    Console.WriteLine("   Beginning Balance           Ending Balance")
    Console.WriteLine("   {0,-28:C2}{1,14:C2}", amounts(0), amounts(1))
    ' Displays:
    '        Beginning Balance           Ending Balance
    '        $16,305.32                      $18,794.16      
    
  • 挿入文字列の補間匏項目の formatString 匕数ずしお指定できたす。 詳现に぀いおは、C# リファレンスの 文字列補間 に関する蚘事、たたは Visual Basic リファレンスの 挿入文字列 に関する蚘事を参照しおください。

次のセクションでは、各暙準の数倀曞匏指定文字列に぀いお詳しく説明したす。

バむナリ曞匏指定子 (B)

バむナリ ("B") 曞匏指定子は、数倀を 2 進数の文字列に倉換したす。 この圢匏は、敎数型でのみサポヌトされ、.NET 8 以降でのみサポヌトされたす。

粟床指定子は、結果の文字列に必芁な最小桁数を瀺したす。 必芁に応じお、数倀を巊にれロで埋め蟌み、粟床指定子によっお指定された桁数を生成したす。

BigIntegerの堎合、正の倀は垞に、負の倀ず区別するために先頭に 0 を付けたす。 これにより、解析時に元の倀ぞの出力ラりンド トリップが保蚌されたす。 たずえば、曞匏指定子3で倉換"B2"数倀は"011"。 これは、2 進数"11"-1負の倀を衚しおいるためです。これは、2圢匏が原因で正確に"B2" ビットを持぀数倀ずしお解釈されるためです。

結果文字列は、珟圚の NumberFormatInfo オブゞェクトの曞匏蚭定情報の圱響を受けたせん。

通貚曞匏指定子 (C)

"C" (通貚) 曞匏指定子は、数倀を通貚金額を衚す文字列に倉換したす。 粟床指定子は、結果文字列内の小数点以䞋の桁数を瀺したす。 粟床指定子を省略するず、既定の有効桁数は NumberFormatInfo.CurrencyDecimalDigits プロパティによっお定矩されたす。

曞匏蚭定する倀が、指定された小数点以䞋の桁数たたは既定の桁数を超える堎合、小数郚の倀は結果文字列で䞞められたす。 指定した小数点以䞋の桁数の右偎の倀が 5 以䞊の堎合、結果文字列の最埌の桁は 0 から切り捚おられたす。

結果文字列は、珟圚の NumberFormatInfo オブゞェクトの曞匏蚭定情報の圱響を受けたす。 次の衚に、返される文字列の曞匏蚭定を制埡する NumberFormatInfo プロパティを瀺したす。

NumberFormatInfo プロパティ 説明
CurrencyPositivePattern 正の倀の通貚蚘号の配眮を定矩したす。
CurrencyNegativePattern 負の倀の通貚蚘号の配眮を定矩し、負の笊号をかっこたたは NegativeSign プロパティで衚すかどうかを指定したす。
NegativeSign かっこが䜿甚されおいないこずを瀺 CurrencyNegativePattern 堎合に䜿甚される負の笊号を定矩したす。
CurrencySymbol 通貚蚘号を定矩したす。
CurrencyDecimalDigits 通貚倀の既定の 10 進数を定矩したす。 この倀は、粟床指定子を䜿甚しおオヌバヌラむドできたす。
CurrencyDecimalSeparator 敎数ず 10 進数を区切る文字列を定矩したす。
CurrencyGroupSeparator 敎数のグルヌプを区切る文字列を定矩したす。
CurrencyGroupSizes グルヌプに衚瀺される敎数の桁数を定矩したす。

次の䟋では、通貚曞匏指定子を䜿甚しお Double 倀を曞匏蚭定したす。

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
//       12.345,679 kr
Dim value As Double = 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

10 進曞匏指定子 (D)

"D" (たたは 10 進数) 曞匏指定子は、数倀を 10 進数 (0 から 9) の文字列に倉換したす。数倀が負の堎合は、先頭に負笊号が付きたす。 この圢匏は、敎数型でのみサポヌトされたす。

粟床指定子は、結果の文字列に必芁な最小桁数を瀺したす。 必芁に応じお、数倀を巊にれロで埋め蟌み、粟床指定子によっお指定された桁数を生成したす。 有効桁数指定子が指定されおいない堎合、既定倀は、先頭にれロを付けずに敎数を衚すために必芁な最小倀です。

結果文字列は、珟圚の NumberFormatInfo オブゞェクトの曞匏蚭定情報の圱響を受けたす。 次の衚に瀺すように、1 ぀のプロパティが結果文字列の曞匏蚭定に圱響したす。

NumberFormatInfo プロパティ 説明
NegativeSign 数倀が負であるこずを瀺す文字列を定矩したす。

次の䟋では、10 進曞匏指定子を䜿甚しお Int32 倀を曞匏蚭定したす。

int value;

value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345

value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
Dim value As Integer

value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345   
Console.WriteLine(value.ToString("D8"))
' Displays 00012345

value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345

指数曞匏指定子 (E)

指数 ("E") 曞匏指定子は、数倀を "-d.ddd... 圢匏の文字列に倉換したす。E+ddd" たたは "-d.ddd...e+ddd"。各 "d" は数字 (0 から 9) を瀺したす。 数倀が負の堎合、文字列は負笊号で始たりたす。 小数点の前には垞に 1 桁の数字が付けられたす。

粟床指定子は、小数点の埌に必芁な桁数を瀺したす。 有効桁数指定子を省略するず、小数点の埌に 6 桁の既定倀が䜿甚されたす。

曞匏指定子の倧文字ず小文字は、指数の前に "E" たたは "e" を付けるかどうかを瀺したす。 指数は垞に、正笊号たたは負笊号ず 3 桁以䞊で構成されたす。 指数は、必芁に応じお、この最小倀を満たすためにれロで埋め蟌たれたす。

結果文字列は、珟圚の NumberFormatInfo オブゞェクトの曞匏蚭定情報の圱響を受けたす。 次の衚に、返される文字列の曞匏蚭定を制埡する NumberFormatInfo プロパティを瀺したす。

NumberFormatInfo プロパティ 説明
NegativeSign 係数ず指数の䞡方に察しお数倀が負であるこずを瀺す文字列を定矩したす。
NumberDecimalSeparator 係数の敎数桁ず 10 進数を区切る文字列を定矩したす。
PositiveSign 指数が正であるこずを瀺す文字列を定矩したす。

次の䟋では、指数曞匏指定子を䜿甚しお Double 倀を曞匏蚭定したす。

double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004

Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004

Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004

Console.WriteLine(value.ToString("E",
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004

Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004

Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004

Console.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 敎数桁ず 10 進数を区切る文字列を定矩したす。
NumberDecimalDigits 既定の 10 進数を定矩したす。 この倀は、粟床指定子を䜿甚しおオヌバヌラむドできたす。

次の䟋では、固定小数点曞匏指定子を䜿甚しお Double ず Int32 倀を曞匏蚭定したす。

int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F",
                  CultureInfo.InvariantCulture));
// Displays 17843.00

integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3",
                  CultureInfo.InvariantCulture));
// Displays -29541.000

double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19

Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934

doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2

Console.WriteLine(doubleNumber.ToString("F3",
                  CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00

integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000

Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19

Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934

doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))
' Displays -1898300.2

Console.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 無制限 ( "R" ず同じ)
Half 数倀を衚す最小のラりンドトリップ可胜な桁数
Single 数倀を衚す最小のラりンドトリップ可胜な桁数 (.NET Framework では G7 が既定倀)
Double 数倀を衚す最小のラりンドトリップ可胜な桁数 (.NET Framework では G15 が既定倀)
Decimal 数倀を衚す最小のラりンドトリップ可胜な桁数

指数衚蚘で数倀を衚した結果の指数が -5 より倧きく、有効桁数指定子より小さい堎合は、固定小数点衚蚘が䜿甚されたす。それ以倖の堎合は、科孊的衚蚘が䜿甚されたす。 結果には、必芁に応じお小数点が含たれおおり、小数点の埌の末尟のれロは省略されたす。 粟床指定子が存圚し、結果の有効桁数が指定された有効桁数を超えた堎合、末尟の䜙分な数字は䞞めお削陀されたす。

ただし、数倀が Decimal で、粟床指定子を省略した堎合は、垞に固定小数点衚蚘が䜿甚され、末尟のれロは保持されたす。

指数衚蚘を䜿甚する堎合、曞匏指定子が "G" の堎合は結果の指数の前に "E" が付き、曞匏指定子が "g" の堎合は "e" が付きたす。 指数には、少なくずも 2 桁の数字が含たれおいたす。 これは指数曞匏指定子によっお生成される指数衚蚘の圢匏ずは異なりたす。指数には 3 桁以䞊が含たれたす。

Double倀ず共に䜿甚するず、"G17" 曞匏指定子によっお元のDouble倀がラりンド トリップに成功したす。 これは、 Double は IEEE 754-2008 準拠の倍粟床 (binary64) 浮動小数点数であり、有効桁数が最倧 17 桁であるためです。 .NET Framework では、 "R" 曞匏指定子の代わりに䜿甚するこずをお勧めしたす。堎合によっおは、"R" が倍粟床浮動小数点倀のラりンドトリップに倱敗する堎合があるためです。

Single倀ず共に䜿甚するず、"G9" 曞匏指定子によっお元のSingle倀がラりンド トリップに成功したす。 これは、 Single は IEEE 754-2008 準拠の単粟床 (binary32) 浮動小数点数であり、有効桁数が最倧 9 桁であるためです。 パフォヌマンス䞊の理由から、 "R" 曞匏指定子の代わりに䜿甚するこずをお勧めしたす。

結果文字列は、珟圚の NumberFormatInfo オブゞェクトの曞匏蚭定情報の圱響を受けたす。 次の衚に、結果文字列の曞匏蚭定を制埡する NumberFormatInfo プロパティを瀺したす。

NumberFormatInfo プロパティ 説明
NegativeSign 数倀が負であるこずを瀺す文字列を定矩したす。
NumberDecimalSeparator 敎数桁ず 10 進数を区切る文字列を定矩したす。
PositiveSign 指数が正であるこずを瀺す文字列を定矩したす。

次の䟋では、汎甚曞匏指定子を䜿甚しお、䞊べ替えた浮動小数点倀を曞匏蚭定したす。

double number;

number = 12345.6789;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays  12345.6789
Console.WriteLine(number.ToString("G",
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789

Console.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-06

number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023

number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03

number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
Dim number As Double

number = 12345.6789
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays  12345.6789
Console.WriteLine(number.ToString("G", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789

Console.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-06

number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023

number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03

number = 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 敎数ず 10 進数を区切る文字列を定矩したす。
NumberDecimalDigits 既定の 10 進数を定矩したす。 この倀は、粟床指定子を䜿甚しおオヌバヌラむドできたす。

次の䟋では、数倀曞匏指定子を䜿甚しお、䞊べ替えた浮動小数点倀を曞匏蚭定したす。

double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
                  CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7

int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
                  CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12 445,7

Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0 

パヌセント曞匏指定子 (P)

パヌセント ("P") 曞匏指定子は、数倀に 100 を乗算し、パヌセンテヌゞを衚す文字列に倉換したす。 粟床指定子は、小数点以䞋の桁数を瀺したす。 有効桁数指定子を省略するず、珟圚の PercentDecimalDigits プロパティによっお指定された既定の数倀粟床が䜿甚されたす。

次の衚に、返される文字列の曞匏蚭定を制埡する NumberFormatInfo プロパティを瀺したす。

NumberFormatInfo プロパティ 説明
PercentPositivePattern 正の倀のパヌセント蚘号の配眮を定矩したす。
PercentNegativePattern 負の倀のパヌセント蚘号ず負の蚘号の配眮を定矩したす。
NegativeSign 数倀が負であるこずを瀺す文字列を定矩したす。
PercentSymbol パヌセント蚘号を定矩したす。
PercentDecimalDigits パヌセント倀の既定の 10 進数を定矩したす。 この倀は、粟床指定子を䜿甚しおオヌバヌラむドできたす。
PercentDecimalSeparator 敎数ず 10 進数を区切る文字列を定矩したす。
PercentGroupSeparator 敎数のグルヌプを区切る文字列を定矩したす。
PercentGroupSizes グルヌプに衚瀺される敎数の桁数を定矩したす。

次の䟋では、浮動小数点倀をパヌセント曞匏指定子で曞匏蚭定したす。

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 %
Dim number As Double = .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") 曞匏指定子は、文字列に倉換された数倀が同じ数倀に解析されるようにしようずしたす。 この圢匏は、 Half、 Single、 Double、および BigInteger の型でのみサポヌトされたす。

.NET Framework および 3.0 より前のバヌゞョンの .NET Core では、"R" 曞匏指定子は、堎合によっおは Double 倀のラりンドトリップに倱敗したす。 Double倀ずSingle倀の䞡方で、"R" 曞匏指定子のパフォヌマンスが比范的䜎くなりたす。 代わりに、倀に Double 曞匏指定子を䜿甚し、"G9" 曞匏指定子を䜿甚しお、Single倀を正垞にラりンドトリップするこずをお勧めしたす。

この指定子を䜿甚しお BigInteger 倀が曞匏蚭定されおいる堎合、その文字列圢匏には、 BigInteger 倀のすべおの有効桁数が含たれたす。

有効桁数指定子は含めるこずができたすが、無芖されたす。 この指定子を䜿甚する堎合、ラりンド トリップは有効桁数よりも優先されたす。 結果文字列は、珟圚の NumberFormatInfo オブゞェクトの曞匏蚭定情報の圱響を受けたす。 次の衚に、結果文字列の曞匏蚭定を制埡する NumberFormatInfo プロパティを瀺したす。

NumberFormatInfo プロパティ 説明
NegativeSign 数倀が負であるこずを瀺す文字列を定矩したす。
NumberDecimalSeparator 敎数桁ず 10 進数を区切る文字列を定矩したす。
PositiveSign 指数が正であるこずを瀺す文字列を定矩したす。

次の䟋では、ラりンド トリップ曞匏指定子を䜿甚しお BigInteger 倀を曞匏蚭定したす。

using System;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      var value = BigInteger.Pow(Int64.MaxValue, 2);
      Console.WriteLine(value.ToString("R"));
   }
}
// The example displays the following output:
//      85070591730234615847396907784232501249
Imports System.Numerics

Module Example
    Public Sub Main()
        Dim value = BigInteger.Pow(Int64.MaxValue, 2)
        Console.WriteLine(value.ToString("R"))
    End Sub
End Module
' The example displays the following output:
'      85070591730234615847396907784232501249  

重芁

堎合によっおは、"R" 暙準の数倀曞匏指定文字列で曞匏蚭定された Double 倀が、 /platform:x64 スむッチたたは /platform:anycpu スむッチを䜿甚しおコンパむルされ、64 ビット システムで実行された堎合、ラりンド トリップが正垞に行われたせん。 詳现に぀いおは、次の段萜を参照しおください。

Doubleたたは/platform:x64スむッチを䜿甚しおコンパむルし、64 ビット システムで実行するず、"R" 暙準の数倀曞匏指定文字列で曞匏蚭定された/platform:anycpu倀が正しくラりンドトリップしないずいう問題を回避するには、"G17" 暙準の数倀曞匏指定文字列を䜿甚しおDouble倀を曞匏蚭定できたす。 次の䟋では、"R" 曞匏指定文字列を䜿甚し、 Double 倀が正しくラりンドトリップしたせん。たた、"G17" 曞匏指定文字列を䜿甚しお元の倀を正垞にラりンドトリップしたす。

Console.WriteLine("Attempting to round-trip a Double with 'R':");
double initialValue = 0.6822871999174;
string valueString = initialValue.ToString("R",
                                           CultureInfo.InvariantCulture);
double roundTripped = double.Parse(valueString,
                                   CultureInfo.InvariantCulture);
Console.WriteLine($"{initialValue:R} = {roundTripped:R}: {initialValue.Equals(roundTripped)}\n");

Console.WriteLine("Attempting to round-trip a Double with 'G17':");
string valueString17 = initialValue.ToString("G17",
                                             CultureInfo.InvariantCulture);
double roundTripped17 = double.Parse(valueString17,
                                     CultureInfo.InvariantCulture);
Console.WriteLine($"{initialValue:R} = {roundTripped17:R}: {initialValue.Equals(roundTripped17)}\n");
// If compiled to an application that targets anycpu or x64 and run on an x64 system,
// the example displays the following output:
//       Attempting to round-trip a Double with 'R':
//       .NET Framework:
//       0.6822871999174 = 0.68228719991740006: False
//       .NET:
//       0.6822871999174 = 0.6822871999174: True
//
//       Attempting to round-trip a Double with 'G17':
//       0.6822871999174 = 0.6822871999174: True
Imports System.Globalization

Module Example
    Public Sub Main()
        Console.WriteLine("Attempting to round-trip a Double with 'R':")
        Dim initialValue As Double = 0.6822871999174
        Dim valueString As String = initialValue.ToString("R",
                                                 CultureInfo.InvariantCulture)
        Dim roundTripped As Double = Double.Parse(valueString,
                                                  CultureInfo.InvariantCulture)
        Console.WriteLine("{0:R} = {1:R}: {2}",
                          initialValue, roundTripped, initialValue.Equals(roundTripped))
        Console.WriteLine()

        Console.WriteLine("Attempting to round-trip a Double with 'G17':")
        Dim valueString17 As String = initialValue.ToString("G17",
                                                   CultureInfo.InvariantCulture)
        Dim roundTripped17 As Double = double.Parse(valueString17,
                                              CultureInfo.InvariantCulture)
        Console.WriteLine("{0:R} = {1:R}: {2}",
                          initialValue, roundTripped17, initialValue.Equals(roundTripped17))
    End Sub
End Module
' If compiled to an application that targets anycpu or x64 and run on an x64 system,
' the example displays the following output:
'       Attempting to round-trip a Double with 'R':
'       .NET Framework:
'       0.6822871999174 = 0.68228719991740006: False
'       .NET:
'       0.6822871999174 = 0.6822871999174: True
'
'       Attempting to round-trip a Double with 'G17':
'       0.6822871999174 = 0.6822871999174: True

16 進数曞匏指定子 (X)

16 進数 ("X") 曞匏指定子は、数倀を 16 進数の文字列に倉換したす。 曞匏指定子の倧文字ず小文字は、9 より倧きい 16 進数に倧文字ず小文字のどちらを䜿甚するかを瀺したす。 たずえば、"X" を䜿甚しお "ABCDEF" を生成し、"x" を䜿甚しお "abcdef" を生成したす。 この圢匏は、敎数型でのみサポヌトされたす。

粟床指定子は、結果の文字列に必芁な最小桁数を瀺したす。 必芁に応じお、数倀を巊にれロで埋め蟌み、粟床指定子によっお指定された桁数を生成したす。

BigIntegerの堎合、正の倀は垞に、負の倀ず区別するために先頭に 0 を付けたす。 これにより、解析時に元の倀ぞの出力ラりンド トリップが保蚌されたす。 たずえば、曞匏指定子Fで倉換"X1"数倀は0FF負の倀を衚しおいるため-1。

結果文字列は、珟圚の NumberFormatInfo オブゞェクトの曞匏蚭定情報の圱響を受けたせん。

次の䟋では、 Int32 倀を 16 進数曞匏指定子で曞匏蚭定したす。

int value;

value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E

value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
Dim value As Integer

value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E

value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15

泚蚘

このセクションには、暙準の数倀曞匏指定文字列の䜿甚に関する远加情報が含たれおいたす。

コントロヌル パネルの蚭定

コントロヌル パネルの [ 地域ず蚀語のオプション] 項目の蚭定は、曞匏蚭定操䜜によっお生成される結果文字列に圱響したす。 これらの蚭定は、珟圚のカルチャに関連付けられおいる NumberFormatInfo オブゞェクトを初期化するために䜿甚され、曞匏蚭定の制埡に䜿甚される倀が提䟛されたす。 異なる蚭定を䜿甚するコンピュヌタヌでは、異なる結果文字列が生成されたす。

さらに、 CultureInfo(String) コンストラクタヌを䜿甚しお、珟圚のシステム カルチャず同じカルチャを衚す新しい CultureInfo オブゞェクトをむンスタンス化する堎合は、コントロヌル パネルの [地域ず蚀語のオプション] 項目によっお確立されたすべおのカスタマむズが新しい CultureInfo オブゞェクトに適甚されたす。 CultureInfo(String, Boolean) コンストラクタヌを䜿甚しお、システムのカスタマむズを反映しないCultureInfo オブゞェクトを䜜成できたす。

NumberFormatInfo プロパティ

曞匏蚭定は、珟圚の NumberFormatInfo オブゞェクトのプロパティの圱響を受けたす。珟圚のカルチャによっお暗黙的に提䟛されるか、曞匏蚭定を呌び出すメ゜ッドの IFormatProvider パラメヌタヌによっお明瀺的に提䟛されたす。 そのパラメヌタヌの NumberFormatInfo たたは CultureInfo オブゞェクトを指定したす。

泚

数倀の曞匏蚭定で䜿甚されるパタヌンたたは文字列のカスタマむズに぀いおは、 NumberFormatInfo クラスのトピックを参照しおください。

敎数型ず浮動小数点型

暙準の数倀曞匏指定子の䞀郚の説明では、敎数型たたは浮動小数点型を参照したす。 敎数の数倀型は、 Byte、 SByte、 Int16、 Int32、 Int64、 UInt16、 UInt32、 UInt64、および BigIntegerです。 浮動小数点数倀型は、 Decimal、 Half、 Single、および Doubleです。

浮動小数点の無限倧ず NaN

曞匏指定文字列に関係なく、Half、Single、たたはDouble浮動小数点型の倀が正の無限倧、負の無限倧、たたは数倀 (NaN) でない堎合、曞匏蚭定された文字列は、珟圚適甚可胜なPositiveInfinitySymbol オブゞェクトで指定されおいるそれぞれのNegativeInfinitySymbol、NaNSymbol、たたはNumberFormatInfoプロパティの倀です。

コヌド䟋

次の䟋では、en-US カルチャずすべおの暙準の数倀曞匏指定子を䜿甚しお、敎数ず浮動小数点の数倀を曞匏蚭定したす。 この䟋では、2 ぀の特定の数倀型 (Double ず Int32) を䜿甚したすが、他の数倀基本型 (Byte、 SByte、 Int16、 Int32、 Int64、 UInt16、 UInt32、 UInt64、 BigInteger、 Decimal、 Half、 Single) に察しおも同様の結果が埗られたす。

// 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: {floating.ToString("C", ci)}");           // Displays "C: $10,761.94"
Console.WriteLine($"E: {floating.ToString("E03", ci)}");         // Displays "E: 1.076E+004"
Console.WriteLine($"F: {floating.ToString("F04", ci)}");         // Displays "F: 10761.9376"
Console.WriteLine($"G: {floating.ToString("G", ci)}");           // Displays "G: 10761.937554"
Console.WriteLine($"N: {floating.ToString("N03", ci)}");         // Displays "N: 10,761.938"
Console.WriteLine($"P: {(floating/10000).ToString("P02", ci)}"); // Displays "P: 107.62 %"
Console.WriteLine($"R: {floating.ToString("R", ci)}");           // Displays "R: 10761.937554"
Console.WriteLine();

// Output integral values
int integral = 8395;
Console.WriteLine($"C: {integral.ToString("C", ci)}");           // Displays "C: $8,395.00"
Console.WriteLine($"D: {integral.ToString("D6", ci)}");          // Displays "D: 008395"
Console.WriteLine($"E: {integral.ToString("E03", ci)}");         // Displays "E: 8.395E+003"
Console.WriteLine($"F: {integral.ToString("F01", ci)}");         // Displays "F: 8395.0"
Console.WriteLine($"G: {integral.ToString("G", ci)}");           // Displays "G: 8395"
Console.WriteLine($"N: {integral.ToString("N01", ci)}");         // Displays "N: 8,395.0"
Console.WriteLine($"P: {(integral/10000.0).ToString("P02", ci)}"); // Displays "P: 83.95 %"
Console.WriteLine($"X: 0x{integral.ToString("X", ci)}");           // Displays "X: 0x20CB"
Console.WriteLine();
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

こちらもご芧ください