alunote’s blog

C#,SQL,JavaScriptなどの技術メモをゆっくり投稿しています。

【C#】書式指定の文字列変換について

今回は、数値を文字列に変換する際の書式(Format)について記述します。

文字列に変換する際の書式(Format)は多数あります。
桁区切り・小数点表示・%表示など言い出したらきりがありません。
そもそも初心者の自分には、すべての書式を使うとは思えません。。。
そこで自分に必要そうなものを勝手に厳選し紹介したいと思います。

◆桁区切り(カンマ区切り)への書式変換
文字列をカンマ区切りで表示したいときに使用します。
変換することで「おっ100万!」と見えやすくなることでしょう。
まぁ自分は変換しても「いち、じゅう、ひゃく...」と数えてしまいますが。。。

◆桁区切り(カンマ区切り)への書式変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        int a = 1000000;

        Console.WriteLine("int a = 1000000 をカンマ区切りで表示");
        Console.WriteLine(a.ToString("#,0"));
    }
}

◆桁区切り(カンマ区切り)への書式変換の実行結果
f:id:alunote:20181003105412p:plain
◆通貨への書式変換
書式指定子に"C"または"c"と記述すると
先頭に\を表示し、必要に応じてカンマ区切りして表示してくれます。
また、下記の通りに実装するとドルへの変換も可能です。
※1ドル=○○円とかいう面倒な計算はしてません!!要注意!!

◆通貨への書式変換のソースコード

using System;
//↓ドル変換のため追加
using System.Globalization;

class Task_6
{
    public static void Main()
    {
        int a = 1000000;

        Console.WriteLine("int a = 1000000 を通貨(円)で表示");
        Console.WriteLine(a.ToString("C"));
        Console.WriteLine("おまけ)int a = 1000000 を通貨(ドル)で表示");
        Console.WriteLine(string.Format(CultureInfo.CreateSpecificCulture("en-US"), "{0:c}", a));
    }
}

◆通貨への書式変換の実行結果
f:id:alunote:20181003105423p:plain
◆固定小数点への書式変換
書式指定子に"F"または"f"と記述すると固定小数点の書式に変換可能です。
また、この書式に変換すると、小数点第3位を自動的に四捨五入して表示します。
当たり前ですが、0~4は切り捨てで5~9は繰り上げです。
また、Fの後に数値を指定することで表示する桁を操作できます。

◆固定小数点への書式変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        double b = 1234.56789;

        Console.WriteLine("double b = 1234.56789 を固定少数点で表示");
        Console.WriteLine(b.ToString("F"));
        Console.WriteLine("double b = 1234.56789 を固定少数点第5位まで表示");
        Console.WriteLine(b.ToString("F5"));
    }
}

◆固定小数点への書式変換の実行結果
f:id:alunote:20181003105434p:plain
◆数値への書式変換
書式指定子に"N"または"n"と記述すると、必要に応じてカンマ区切りして表示されます。
「え?普通の桁区切りと何が違うの?」と思われた方も多いでしょう。
自分も思いました。。。
異なる点は小数点第3位で四捨五入され表示される点です!。。。なんとも微々たる差。
そもそも数値から文字列に変換して書式を数値にする意味あるの?(@Д@;

◆数値への書式変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        int a = 1000000;

        Console.WriteLine("int a = 1000000 を数値で表示");
        Console.WriteLine(a.ToString("N"));
    }
}

◆数値への書式変換の実行結果
f:id:alunote:20181003105442p:plain
◆パーセントへの書式変換
書式指定子に"P"または"p"と記述すると、
数値に100を掛けてパーセント記号(%)を付けて表示されます。
達成率や全体の割合を表示したいときに使われることでしょう。
また、P0(ピーゼロ)と記述すると小数点以下は表示されません。

◆パーセントへの書式変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        double c = 1;
        double d = 0.5;
        double e = 0.3;

        Console.WriteLine("double c = 1 をパーセント表示");
        Console.WriteLine(c.ToString("P"));
        Console.WriteLine("double d = 0.5 をパーセント表示");
        Console.WriteLine(d.ToString("P"));
        Console.WriteLine("double e = 0.30 をパーセント表示");
        Console.WriteLine(e.ToString("P0"));
    }
}

◆パーセントへの書式変換の実行結果
f:id:alunote:20181003105501p:plain
以上です。
この記事が誰かの役に立つことを祈ります。