今回は、基礎編です。
算数ドリル、暗記力ゲームと作ってきましたが、
プログラミングをしていてよく使うのが、型変換(キャスト)です。
今回は、初心者の為の型変換(キャスト)についてまとめたいと思います。
まずは、前提を定義します。
文字列(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”をつける事をオススメします。
業務でプログラミング(C#/VB/Python)を作っている。
挫折を何回も繰り返し、幾度の壁を乗り越えてきた。
乗り越えてきた事を忘れないように記録に残す。
同じ思いをしている人への情報提供になれたらと思う。
基本は初心者に向けたプログラムの情報を提供する。
コメント