hakeの日記

Windows環境でプログラミングの勉強をしています。

C# - 文字列の書式指定(ToString)

数値をToStringメソッドで文字列化する場合の書式設定。
基本は前回と同じ、カスタム書式指定というのはExcelの表示形式の指定と似ています。(同じ?)
ToStrirngメソッド自体は、オブジェクトを等価の文字列表現に変換する機能があり、供給されている各オブジェクトで使用が可能な様です。

using System;

//ToStringを用いた数値の文字列化の書式指定

class MyMain
{
    static void Main(string[] args)
    {
        int d1 = 123;
        Console.WriteLine("通常         : {0}", d1.ToString());    //123
        Console.WriteLine("通常(G指定)  : {0}", d1.ToString("G")); //123
        Console.WriteLine("10進桁指定   : {0}", d1.ToString("D4"));//0123
        Console.WriteLine("16進         : {0}", d1.ToString("X")); //7B
        Console.WriteLine("16進4桁      : {0}", d1.ToString("X4"));//007B

        int d2 = 12345;
        Console.WriteLine("3桁区切り    : {0}", d2.ToString("N")); //12,345.00
        Console.WriteLine("3桁区切り    : {0}", d2.ToString("N0"));//12,345

        Console.WriteLine("通貨         : {0}", d2.ToString("C")); //\12,345

        double f1 = 4.56789;
        Console.WriteLine("通常           : {0}", f1.ToString());    //4.56789
        Console.WriteLine("通常(G指定)    : {0}", f1.ToString("G")); //4.56789
        Console.WriteLine("固定小数点     : {0}", f1.ToString("F")); //4.57
        Console.WriteLine("固定小数点(4桁): {0}", f1.ToString("F4"));//4.5679
        Console.WriteLine("指数表示       : {0}", f1.ToString("E")); //4.567890E+000
        Console.WriteLine("指数表示(4桁)  : {0}", f1.ToString("E4"));//4.5679E+000

        double f2 = 0.9;
        Console.WriteLine("パーセント     : {0}", f2.ToString("P"));//90.00%


        //
        //カスタム数値書式指定
        //
        //d1 = 123;
        Console.WriteLine(d1.ToString("0000"));    //0123
        Console.WriteLine(d1.ToString("0.00"));    //123.00
        //d2 = 12345;
        Console.WriteLine(d2.ToString("#0"));      //12345
        Console.WriteLine(d2.ToString("#,0"));     //12,345
        Console.WriteLine(d2.ToString("#,0.00"));  //12,345.00
        f1 = 45.6789;
        Console.WriteLine(f1.ToString("0.00"));    //45.68
        Console.WriteLine(f1.ToString("0.00E0"));  //4.57E1
        Console.WriteLine(f1.ToString("0.00E00")); //4.57E01
        Console.WriteLine(f1.ToString("0.00E+00"));//4.57E+01
        
        //日付
        DateTime dt = new DateTime(2018, 9, 19);
        Console.WriteLine(dt.ToString("yyyy/MM/dd"));//2018/09/19
    }
}