C言語のprintf
関数で使えるような書式をC#でも使いたいと思って簡単に調べてみました。
int型
サンプル
int value = 1234;
// 普通に表示
Console.WriteLine($"{value}");
// 8文字分のスペースに右揃えで表示
Console.WriteLine($"{value,8}");
// 8文字分のスペースに左揃えで表示
Console.WriteLine($"{value,-8}");
// 足りない部分は0で補って8桁で表示
Console.WriteLine($"{value:D8}");
実行結果
1234 1234 1234 00001234
サンプル – 16進表記
int value = 1234;
// 16進表記で表示
Console.WriteLine($"{value:X}");
// 8文字分のスペースに右揃えで表示
Console.WriteLine($"{value,8:X}");
// 8文字分のスペースに左揃えで表示
Console.WriteLine($"{value,-8:X}");
// 足りない部分は0で補って8桁の16進表記で表示
Console.WriteLine($"{value:X8}");
実行結果
4D2 4D2 4D2 000004D2
サンプル – 16進表記 その2
小文字の16進表記で表示したい場合はX
の代わりにx
を使います。
int value = 1234;
Console.WriteLine($"{value:x}");
Console.WriteLine($"{value,8:x}");
Console.WriteLine($"{value,-8:x}");
Console.WriteLine($"{value:x8}");
実行結果
4d2 4d2 4D2 000004d2
float型
サンプル
float value = 123.4f;
// 普通に小数点表示
Console.WriteLine($"{value:F}");
// 8文字分のスペースに右揃えで小数点表示
Console.WriteLine($"{value,8:F}");
// 8文字分のスペースに左揃えで小数点表示
Console.WriteLine($"{value,-8:F}");
// 小数点以下を8桁で表示
Console.WriteLine($"{value:F8}");
実行結果
123.40 123.40 123.40 123.40000000
※精度指定子がない場合はNumberFormatInfo.NumberDecimalDigits
の値によって小数点以下の桁数が決まるそうです。
リンク
$ – string interpolation – C# reference | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated
String interpolation in C# | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/string-interpolation
Standard numeric format strings | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings