DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DOBON.NET

書式を指定して数値を文字列に変換する

文字列を数字に(または数字を文字列に)変換する」で紹介したように、ToStringメソッドにより数値を文字列に変換できますが、その時どのような文字列に変換するかを書式(書式指定文字列)で指定することが出来ます。数値に関する書式指定文字列はヘルプの「標準の数値書式指定文字列」や「カスタム数値書式指定文字列」に詳しく説明されていますので、そちらをご覧いただくこととし、ここでは具体例のみを示します。

整数型の例

まずは整数型(int型)の例を示します。

[VB.NET]
Dim i As Integer = 123456

'====================
'標準の数値書式指定文字列
'====================
'書式なし("G"と同じになる)
Console.WriteLine(i.ToString())
'結果:123456

'通貨
Console.WriteLine(i.ToString("C"))
'結果:\123,456

'10進数
Console.WriteLine(i.ToString("D"))
'結果:123456

'指数
Console.WriteLine(i.ToString("E"))
'結果:1.234560E+005

'固定小数点
Console.WriteLine(i.ToString("F"))
'結果:123456.00

'一般
Console.WriteLine(i.ToString("G"))
'結果:123456

'数値
Console.WriteLine(i.ToString("N"))
'結果:123,456.00

'パーセント
Console.WriteLine(i.ToString("P"))
'結果:12,345,600.00%

'ラウンドトリップ(int型ではエラーが出る)
'Console.WriteLine(i.ToString("R"));

'16 進数
Console.WriteLine(i.ToString("X"))
'結果:1E240

'====================
'カスタム数値書式指定文字列
'====================

Console.WriteLine(i.ToString("0"))
'結果:123456

Console.WriteLine(i.ToString("00000000"))
'結果:00123456

Console.WriteLine(i.ToString("########"))
'結果:123456

Console.WriteLine(i.ToString("#,##0"))
'結果:123,456

Console.WriteLine(i.ToString("%0"))
'結果:%12345600

Console.WriteLine(i.ToString("00.000E0"))
'結果:12.346E4

Console.WriteLine(i.ToString("プラス#;マイナス#;ゼロ"))
'結果:プラス123456

Console.WriteLine(i.ToString("iの値は「#」です。"))
'結果:iの値は「123456」です。
[C#]
int i= 123456;

//====================
//標準の数値書式指定文字列
//====================

//書式なし("G"と同じになる)
Console.WriteLine(i.ToString());
//結果:123456

//通貨
Console.WriteLine(i.ToString("C"));
//結果:\123,456

//10進数
Console.WriteLine(i.ToString("D"));
//結果:123456

//指数
Console.WriteLine(i.ToString("E"));
//結果:1.234560E+005

//固定小数点
Console.WriteLine(i.ToString("F"));
//結果:123456.00

//一般
Console.WriteLine(i.ToString("G"));
//結果:123456

//数値
Console.WriteLine(i.ToString("N"));
//結果:123,456.00

//パーセント
Console.WriteLine(i.ToString("P"));
//結果:12,345,600.00%

//ラウンドトリップ(int型ではエラーが出る)
//Console.WriteLine(i.ToString("R"));

//16 進数
Console.WriteLine(i.ToString("X"));
//結果:1E240

//====================
//カスタム数値書式指定文字列
//====================
Console.WriteLine(i.ToString("0"));
//結果:123456

Console.WriteLine(i.ToString("00000000"));
//結果:00123456

Console.WriteLine(i.ToString("########"));
//結果:123456

Console.WriteLine(i.ToString("#,##0"));
//結果:123,456

Console.WriteLine(i.ToString("%0"));
//結果:%12345600

Console.WriteLine(i.ToString("00.000E0"));
//結果:12.346E4

Console.WriteLine(i.ToString("プラス#;マイナス#;ゼロ"));
//結果:プラス123456

Console.WriteLine(i.ToString("iの値は「#」です。"));
//結果:iの値は「123456」です。

以上の結果を表にまとめます。

書式 説明 値が"123456"の時
書式なし 123456
C 通貨 \123,456
D 10進数 123456
E 指数 1.234560E+005
F 固定小数点 123456.00
G 一般 123456
N 数値 123,456.00
P パーセント 12,345,600.00%
R ラウンドトリップ (エラーが出る)
X 16進数 1E240
0 123456
00000000 00123456
######## 123456
#,##0 123,456
%0 %12345600
00.000E0 12.346E4
プラス#;マイナス#;ゼロ プラス123456
iの値は「#」です。 iの値は「123456」です。

小数型の例

次は小数(double型)の例です。

[VB.NET]
Dim d As Double = 1.23456789

'====================
'標準の数値書式指定文字列
'====================

'書式なし("G"と同じになる)
Console.WriteLine(d.ToString())
'結果:1.23456789

'通貨
Console.WriteLine(d.ToString("C"))
'結果:\1

'10進数(double型ではエラーが出る)
'Console.WriteLine(d.ToString("D"));

'指数
Console.WriteLine(d.ToString("E"))
'結果:1.234568E+000

'固定小数点
Console.WriteLine(d.ToString("F"))
'結果:1.23

'一般
Console.WriteLine(d.ToString("G"))
'結果:1.23456789

'数値
Console.WriteLine(d.ToString("N"))
'結果:1.23

'パーセント
Console.WriteLine(d.ToString("P"))
'結果:123.46%

'ラウンドトリップ
Console.WriteLine(d.ToString("R"))
'結果:1.23456789

'16 進数(double型ではエラーが出る)
'Console.WriteLine(d.ToString("X"));

'====================
'カスタム数値書式指定文字列
'====================

Console.WriteLine(d.ToString("00.0000000000"))
'結果:01.2345678900

Console.WriteLine(d.ToString("##.##########"))
'結果:1.23456789

Console.WriteLine(d.ToString("#,##0.000"))
'結果:1.235

Console.WriteLine(d.ToString("%0.##"))
'結果:%123.46

Console.WriteLine(d.ToString("00.000E0"))
'結果:12.346E-1

Console.WriteLine(d.ToString("プラス#.##;マイナス#.##;ゼロ"))
'結果:プラス1.23

Console.WriteLine(d.ToString("dの値は「#.##」です。"))
'結果:dの値は「1.23」です。
[C#]
double d = 1.23456789;

//====================
//標準の数値書式指定文字列
//====================

//書式なし("G"と同じになる)
Console.WriteLine(d.ToString());
//結果:1.23456789

//通貨
Console.WriteLine(d.ToString("C"));
//結果:\1

//10進数(double型ではエラーが出る)
//Console.WriteLine(d.ToString("D"));

//指数
Console.WriteLine(d.ToString("E"));
//結果:1.234568E+000

//固定小数点
Console.WriteLine(d.ToString("F"));
//結果:1.23

//一般
Console.WriteLine(d.ToString("G"));
//結果:1.23456789

//数値
Console.WriteLine(d.ToString("N"));
//結果:1.23

//パーセント
Console.WriteLine(d.ToString("P"));
//結果:123.46%

//ラウンドトリップ
Console.WriteLine(d.ToString("R"));
//結果:1.23456789

//16 進数(double型ではエラーが出る)
//Console.WriteLine(d.ToString("X"));

//====================
//カスタム数値書式指定文字列
//====================
Console.WriteLine(d.ToString("00.0000000000"));
//結果:01.2345678900

Console.WriteLine(d.ToString("##.##########"));
//結果:1.23456789

Console.WriteLine(d.ToString("#,##0.000"));
//結果:1.235

Console.WriteLine(d.ToString("%0.##"));
//結果:%123.46

Console.WriteLine(d.ToString("00.000E0"));
//結果:12.346E-1

Console.WriteLine(d.ToString("プラス#.##;マイナス#.##;ゼロ"));
//結果:プラス1.23

Console.WriteLine(d.ToString("dの値は「#.##」です。"));
//結果:dの値は「1.23」です。

以上の結果を表にまとめると、次のようになります。

書式 説明 値が"1.23456789"の時
書式なし 1.23456789
C 通貨 \1
D 10進数 (エラーが出る)
E 指数 1.234568E+000
F 固定小数点 1.23
G 一般 1.23456789
N 数値 1.23
P パーセント 123.46%
R ラウンドトリップ 1.23456789
X 16進数 (エラーが出る)
00.0000000000 01.2345678900
##.########## 1.23456789
#,##0.000 1.235
%0.## %123.46
00.000E0 12.346E-1
プラス#;マイナス#;ゼロ プラス1.23
dの値は「#.##」です。 dの値は「1.23」です。
  • 履歴:
  • 2006/12/2 表を追加。