端くれプログラマの備忘録 C# [C#] 文字列を数値に変換する

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

フォームに配置したテキストボックスに入力された文字列を数値に変換するような場合を想定。

以下に2つの方法を示す。何れの場合も変換できなければ例外が投げられるので、例外をキャッチしたらメッセージを表示してユーザに再入力を促せば良い。

<型>.Parse()メソッドを使う

using System.Diagnostics;

string str = "12345";
int num = int.Parse(str);
Debug.WriteLine("str={0}, num={1}", str, num);

str = "12,345,678.99";
Decimal dec = Decimal.Parse(str);
Debug.WriteLine("str={0}, dec={1}", str, dec);

str = "123.4567";
float val = float.Parse(str);
Debug.WriteLine("str={0}, val={1}", str, val);

/* result
str=12345, num=12345
str=12,345,678.99, dec=12345678.99
str=123.4567, val=123.4567
*/

Int16.Parse メソッド (System)
http://msdn.microsoft.com/ja-jp/library/system.int16.parse(v=vs.110).aspx

Decimal.Parse メソッド (System)
http://msdn.microsoft.com/ja-jp/library/system.decimal.parse(v=vs.110).aspx

Single.Parse メソッド (System)
http://msdn.microsoft.com/ja-jp/library/system.single.parse(v=vs.110).aspx

System.Convertクラスを使う

string str = "12345";
int num = Convert.ToInt32(str);
Debug.WriteLine("str={0}, num={1}", str, num);

str = "12,345,678.99";
Decimal dec = Convert.ToDecimal(str);
Debug.WriteLine("str={0}, num={1}", str, dec);

str = "123.4567";
float val = Convert.ToSingle(str);
Debug.WriteLine("str={0}, val={1}", str, val);

/* result
str=12345, num=12345
str=12,345,678.99, dec=12345678.99
str=123.4567, val=123.4567
*/

Convert クラス (System)
http://msdn.microsoft.com/ja-jp/library/system.convert(v=vs.110).aspx