ここでマスターしたいこと
- int、float、stringの間で、相互にデータのやりとりができるようにすること。
型違い
C#では、以下のような型の変数へ、ある型のデータを直接代入することはできない。
- int型 ← string型
- int型 ← float型
- float型 ← string型
- string型 ← int型
- string型 ← float型
これは、データが変数で記録できなかったり、精度が落ちることでプログラムが正しく動作しなくなることを防ぐためである。なお、float型の変数へint型のデータを代入する場合は、float型が全てのint型のデータを記録することができるため、直接代入することが可能である。
エラー例
- string型のtextBox1.Textを、int型の変数aへの代入しようとして失敗している。
型キャストとは
データの型を変換することを型キャストという。型キャストを行うことで、違うデータ型の変数への代入が可能となる。以下に、相互のデータの型キャスト方法をまとめる。
予め、以下のように変数が宣言されているとする。
int a = 0; float f = 3.14f; string str = "10";
変換内容 | 型キャストの例 |
---|---|
int型へstring型を変換 | a = int.Parse(str); |
int型へfloat型を変換 | a = (int)f; |
float型へint型を変換 | f = a; |
float型へstring型を変換 | f = float.Parse(str); |
string型へint型を変換 | str = a.ToString(); あるいは str = ""+a; |
string型へfloat型を変換 | str = f.ToString(); あるいは str = ""+f; |
string型への変換は、""+a;などのように、string型のデータに数値型のデータを結合することでも可能。
例:入力された半径の円の円周を求めるプログラム
型キャストができるようになると、数値型のデータをラベルに表示したり、テキストボックスに入力された数値を計算に使ったりすることができるようになる。以下に例を示す。
private void button1_Click(object sender, EventArgs e) { float f = float.Parse(textBox1.Text); float ensyu = f * 3.14f * 2.0f; MessageBox.Show("半径" + f.ToString() + "の円の円周は" + ensyu.ToString()); }
動作例