フォームに配置したテキストボックスに入力された文字列を数値に変換するような場合を想定。
以下に2つの方法を示す。何れの場合も変換できなければ例外が投げられるので、例外をキャッチしたらメッセージを表示してユーザに再入力を促せば良い。
<型>.Parse()メソッドを使う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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クラスを使う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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