Unity C#:int、float、double、string、boolのデータ型を変更する方法

bucket IT

Unityではテキストはstringしか受け付けないとか、座標はfloatで返るとかいろいろとデータ型縛りがあり、取得した値を別のデータ型に置き換える場面が多くでてきます。
そんなわけで各種データ型変更方法まとめです。

スポンサーリンク

前置き

stringに変換

ToString(なんでも→string)

stringに変換
変数.ToString()
//Unity C#
    void Start()
    {
        int a = 1;
    //int→string
        string b = a.ToString();
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
tostring1
他の形式のデータをstring形式に変換するには、ToStringメソッドを使用します。intやfloatはもちろん、bool値も文字列に変換できます(True、Falseという文字列になる)。

ToStringした数値の桁指定

//Unity C#
int a = 1;
string b = a.ToString("0000");
ToStringで数値を変換する時に、最低桁数を0の数で指定することができます。
tostring
0000で指定すればこうなります。10000以上は普通に桁数が増えます。
//Unity C#
int a = 1;
string b = a.ToString(".0000");
同様に0.0000とか、.0000で指定してやれば、
tostring2
小数点以下の最低桁数を指定することもできます。

Convert.ToString(なんでも→string)

stringに変換
Convert.ToString(変数)
//Unity C#
using System;

    void Start()
    {
        bool a = true;
        //bool→string
        string b = Convert.ToString(a);
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
convertstring
ToStringと同じような感じで使えますが、名前空間でusing System;を宣言する必要があります。
以下それぞれ書いてますが、Convert Toの後にGetTypeで取得できるデータ型(図赤枠部分)を付ければ、int、float、double、boolどれでも変換できます(Convert ToInt32()など)

intに変換

int.Parse(string→int)

string→intに変換
int.Parse(変数)
//Unity C#
    void Start()
    {
        string a = "1";
    //string→int
        int b = int.Parse(a);
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
intparse unity1
int.Parseを使うと、string形式の整数をint形式に変換することができます。
floatなどには使用できません。

int(float/double→int)

intに変換(小数切り捨て)
(int)変数
//Unity C#
    void Start()
    {
        float a = 1.99f;
        //float→int(小数切り捨て)
        int b = (int)a;
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
int
頭に(int)を付けることで、float、double値を整数にすることができます。小数は切り捨てられます。
stringなどは変換できません。

Mathf(float→int)

float→intに変換(小数切り上げ)
Mathf.CeilToInt(変数)

float→intに変換(小数切り捨て)
Mathf.FloorToInt(変数)

float→intに変換(偶数丸め)
Mathf.RoundToInt(変数)

//Unity C#
        float a = 1.5f;

        //float→int(小数切り上げ)
        int b = Mathf.CeilToInt(a);
        Debug.Log(b);
        Debug.Log(b.GetType());

        //float→int(小数切り捨て)
        int c = Mathf.FloorToInt(a);
        Debug.Log(c);
        Debug.Log(c.GetType());

        //float→int(偶数丸め)
        int d = Mathf.RoundToInt(a);
        Debug.Log(d);
        Debug.Log(d.GetType());

ceiltoint
Mathf.Ceil、Floor、RoundにToIntをつけることで、小数を切り上げたり切り下げたりしたint値を戻すことができます。

Convert.ToInt32(なんでも→int)

intに変換
Convert.ToInt32(変数)
//Unity C#using System;

    void Start()
    {
        bool a = true;
        //bool→int(Trueは1、Falseは0)
        int b = Convert.ToInt32(a);
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
boolint
Convert.ToInt32を使うには、名前空間でusing System;を記述する必要があります。
boolを0か1に変換できる他、floatかdoubleなら偶数丸め、stringならただの整数のみ変換できます(0.00とかはダメ)

floatに変換

float.Parse(string→float)

string→floatに変換
float.Parse(変数)
//Unity C#
    void Start()
    {
        string a = "1";
    //string→float
        float b = float.Parse(a);
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
floatparse unity
同様に、float.Parseを使うとstring形式の整数をfloat形式に変換することができます。元の文字列にfは不要です。
int→floatなどはできません。

float(int/double→float)

floatに変換
(float)変数
//Unity C#
    void Start()
    {
        double a = 1.123456789;
        //double→float
        float b = (float)a;
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
float
int同様、頭に(float)を付けることで、int、double値をfloat値にすることができます。stringなどは変換できません。

Convert.ToSingle(なんでも→float)

floatに変換
Convert.ToSingle(変数)
//Unity C#using System;

    void Start()
    {
        bool a = true;
        //bool→float
        float b = Convert.ToSingle(a);
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
boolint
名前空間でusing System;を宣言する必要があります。
int、double、boolをfloatに変換できます。stringの場合、"1""1.1"などはOKですが、"1f"や数字以外の文字列はエラーになります。

doubleに変換

double(int/float→double)

doubleに変換
(double)変数
//Unity C#
    void Start()
    {
        float a = 1.123456789f;
        //float→double
        double b = (double)a;
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
double
(double)を付けることで、int、float値をdouble値にすることができます。
stringなどは変換できません。

Convert.ToDouble(なんでも→double)

doubleに変換
Convert.ToDouble(変数)
//Unity C#using System;

    void Start()
    {
        string a = "1.2345";
        //string→double
        double b = Convert.ToDouble(a);
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
boolint
名前空間でusing System;を宣言する必要があります。
int、float、boolをdoubleに変換できます。stringの場合、数字以外の文字列はエラーになります。

boolに変換

Convert.ToBoolean(なんでも→bool)

boolに変換
Convert.ToBoolean(変数)
//Unity C#
using System;

    void Start()
    {
        int a = 1;
    //int→bool(0=False、それ以外=True)
        bool b = Convert.ToBoolean(a);
        Debug.Log(b);
        Debug.Log(b.GetType());
    }
convert boolean
Convert.ToBooleanを噛ませることで、int、float、doubleをbool値にすることができます。Convertクラスを使う場合、名前空間でusing System;を記述する必要があります。
試した感じ0以外は全部Trueになるようです。1も300も-0.5fもTrueです。
convert boolean2
stringの場合、”true””True””tRue”などはTrueに、”false””False””FALSE”などはFalseになります。他の文字列および”1″、”0″はエラーになります。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント