int, float, string の相互変換メモ。
Unity だと基本的に double は使わないけど大体 f を抜くだけで動く。
基本的にキャストは使わずに専用関数を使うべき。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* int,float -> string */ string s1 = 1.ToString(); // 1+"" でもOK string s2 = 2.5f.ToString(); // 2.5f+"" でもOK string s3 = 1; //コンパイルエラー(Cannot implicitly convert type `int' to `string') string s4 = (string)1; //コンパイルエラー(Cannot convert type `float' to `string') /* string -> int,float */ int i1 = int.Parse("1"); float f1 = float.Parse("2.5"); int i2 = int.Parse("1.5"); //ランタイムエラー(FormatException: Input string was not in the correct format) float f2 = float.Parse("2.5f");//ランタイムエラー(FormatException: Unknown char: f) /* float -> int */ int i1 = (int)1.8f; //1 : 切捨て int i2 = Mathf.CeilToInt(2.2f); //3 : 切り上げ int i3 = Mathf.FloorToInt(3.7f); //3 : 切捨て int i4 = Mathf.RoundToInt(4.5f); //4 : 四捨五入 x.5の場合は偶数になる int i5 = Mathf.RoundToInt(5.5f); //6 : 四捨五入 x.5の場合は偶数になる |
RoundToInt は若干変な動きなので気をつける。