[C# String] 文字列型を数値型に変換する

文字列型で表現された数値を数値型に変換するには、それぞれの数値のデータ型のParseメソッドを使うか、System.Convertクラスのメソッドを使います。

using System;
class Program
{
    public static void Main()
    {
        // 文字列をint型に変換
        int i1 = int.Parse("123");
        int i2 = Convert.ToInt32("123");

        // 文字列をfloat型に変換
        float f1 = float.Parse("10.12");
        float f2 = Convert.ToSingle("10.12");

        // 文字列をdouble型に変換
        double d1 = double.Parse("5.12345");
        double d2 = Convert.ToDouble("5.12345");
    }
}

上の方法の場合、数値に変換できない文字列の場合エラーになるので注意してください。どんな文字列が指定されるかわからない場合はTryParseメソッドを使います。

各データ型のTryParseメソッドを使うと指定した文字列が数値に変換できたかというフラグと数値に変換された値を取得することができます。

TryParseメソッドの第1引数変換したい文字列を指定します。
第2引数にはoutを使い数値に変換された値を受け取る変数を指定します。
戻り値は変換が成功した場合にTrue、失敗した場合にFalseが返ってきます。

outの使い方は[C#] メソッドの引数にoutを付けて出力として利用するを見てください。

変換に失敗した場合、第2引数の変数にはデフォルト値(0)が返されます。

using System;
class Program
{
    public static void Main()
    {
        // 文字列をint型に変換
        if (int.TryParse("123", out int i))
        {
            Console.WriteLine($"変換に成功 [{i}]");
        }
        else 
        {
            Console.WriteLine($"変換に失敗 [{i}]");
        }

        // 文字列をfloat型に変換
        if (float.TryParse("1.23", out float f))
        {
            Console.WriteLine($"変換に成功 [{f}]");
        }
        else
        {
            Console.WriteLine($"変換に失敗 [{f}]");
        }

        // 文字列をdouble型に変換
        if (double.TryParse("10.123456789", out double d))
        {
            Console.WriteLine($"変換に成功 [{d}]");
        }
        else
        {
            Console.WriteLine($"変換に失敗 [{d}]");
        }

        // 変換に失敗した場合はFalseが返る
        if (int.TryParse("abc", out int value)) 
            Console.WriteLine($"変換に成功 [{value}]");
        else 
            Console.WriteLine($"変換に失敗 [{value}]");
    }
}

C# プログラミング講座に戻る

コメント

タイトルとURLをコピーしました