カンマ区切りの数値を整数型に変換する - C#

千の位でカンマ区切りで入力された数値を整数型に変換するコードを紹介します。

UI

下図のUIを作成します。

コード

以下のコードを記述します。

FormMain.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CurrencyStringToDecimal
{
  public partial class _default : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
      string str = TextBox1.Text;

      int value;
      bool ret = int.TryParse(str, 
        System.Globalization.NumberStyles.AllowThousands, null, out value);

      Label1.Text = value.ToString();

    }
  }
}

解説

千の桁がカンマで区切られた文字列を数値に変換する場合はTryParseメソッドを用い第二引数に"System.Globalization.NumberStyles.AllowThousands"を指定することで対応できます。変換結果は第四引数のvalueに格納されます。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


テキストボックスに千の桁をカンマで区切った数値を入力します。


ボタンをクリックすると下部のラベルに数値が表示されます。カンマ区切りの文字列が数値に変換できたことがわかります。

補足 (うまくいかない例)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CurrencyStringToDecimal
{
  public partial class _default : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
      string str = TextBox1.Text;
      int value = Convert.ToInt32(str);
      Label1.Text = value.ToString();
    }
  }
}

実行結果

上記コードを実行し、テキストボックスにカンマ区切りの数値を入れてボタンをクリックすると下記のFormatExceptionが発生します。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2013-06-06
iPentec all rights reserverd.