【C#】【基礎編】型変換(キャスト)

スポンサーリンク

今回は、基礎編です。

算数ドリル、暗記力ゲームと作ってきましたが、

プログラミングをしていてよく使うのが、型変換(キャスト)です。

今回は、初心者の為の型変換(キャスト)についてまとめたいと思います。

まずは、前提を定義します。

文字列(string型)の変数名を【str】とする。
数値(int型)の変数名を【i】とする。
数値(double型)の変数名を【dbl】とする。
論理型(bool型)の変数名を【IsCast】とする。
日付構造体(DateTime型)の変数名を【dt】とする。

文字列(string)から数値(int,double)

まずは、文字列が数字だとわかっている場合

string型 → int型 : i = int.Parse(str)
string型 → double型 : dbl = double.Parse(str)

もし変換できない場合は、例外が発生しますので注意しましょう。

次に、文字列が数値かわからなくて、数値型に変換可能か確認する方法

string型 → int型 : IsCast = int.TryParse(str,out i)
string型 → double型 : IsCast = double.TryParse(str,out dbl)

IsCastがTrueの時は、型変換可能です。そして、第二引数に変換後の値が入ります。

IsCastがFalseの時は、型変換不可です。その場合、第二引数の値は、「0」になります。

ちなみに文字列strが”12.34″の場合、int.TryParseの結果はFalseになりますので覚えておきましょう。

数値(int,double)から文字列(string)

数値を文字列に型変換させたい時についてです。

int型 → string型 : str = i.ToString()
double型 → string型 : str = dbl.ToString()

数値(int,double)から文字列(string) 書式指定[0埋め]

数値を文字にしたい時に、よく使うのが書式指定です。

例えば、”001″,”016″といった、0埋めをしたい時です。(ゼロプレースホルダー)

i = 12 / dbl = 12.55 の時に3桁で0埋めの場合ををしてみます。

str = i.ToString("000");
'結果:"012"

str = dbl.ToString("000");
'結果:"013"

この書式指定の場合、数値3桁で表示と指定している事になります。

また、小数点に関しては四捨五入されます。

小数点まで入れたい時は、どうするのでしょうか?

str = i.ToString("000.0");
'結果:"012.0"

str = dbl.ToString("000.0");
'結果:"012.6"

数値(int,double)から文字列(string) 書式指定[桁指定]

数値を文字にしたい時に、よく使うのが書式指定です。

表示する桁を指定したい時はどうするのでしょうか?(桁プレースホルダー)

i = 12 / dbl = 12.55 の時に桁指定を行ってみましょう。

3パタン書いてみます。

str = i.ToString("#");
'結果:"12"

str = dbl.ToString("#");
'結果:"13"
str = i.ToString("###");
'結果:"12"

str = dbl.ToString("###");
'結果:"13"
str = i.ToString("###.#");
'結果:"12"

str = dbl.ToString("###.#");
'結果:"12.6"

数値(int,double)から文字列(string) 書式指定[固定小数点]

数値を文字にしたい時に、よく使うのが書式指定です。

小数点の桁を固定で表示する場合は、どうすればいいのでしょうか?(固定小数点)

i = 12 / dbl = 12.55 の時に桁指定を行ってみましょう。

2パタン書いてみます。

str = i.ToString("F");
'結果:"12.00"

str = dbl.ToString("F");
'結果:"12.55"
str = i.ToString("F1");
'結果:"12.0"

str = dbl.ToString("F1");
'結果:"12.6"

数値(int型,double型)から数値型(int型,double型)

i = 12 / dbl = 12.55 の時に型変換を行ってみる。

int型 → double型 : dbl = (double)i  '結果:12
double型 → int型 : i = (int)dbl   '結果:12

double型からint型に型変換した場合は、小数点以下切り捨てになります。

割り算の商を求める時に使ったりします。

日付構造体(DateTime型)から文字列(string型) 書式指定

自分はかなりよく使います。ただよく忘れますwww

dt = DateTime.Now;
str = dt.ToString();
'結果:"2020/10/20 23:41:14"

普通に文字列に変換すると[日付 時間]の2つの情報が入ります。

ここで、日付を取得する場合の書式指定は、

dt = DateTime.Now;
str = dt.ToString("yyyy/MM/dd");
'結果:"2020/10/20"

次に時間を取得する方法

dt = DateTime.Now;
str = dt.ToString("hh:mm:ss");
'結果:"11:41:14"

dt = DateTime.Now;
str = dt.ToString("tthh:mm:ss");
'結果:"午後11:41:14"

dt = DateTime.Now;
str = dt.ToString("HH:mm:ss");
'結果:"23:41:14"

“hh”の場合、12時間表記 / “HH”の場合、24時間表記です。

“hh”の場合、午前(AM)か午後(PM)かわからない為、”tt”をつける事をオススメします。

コメント

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