Basic Type Casting
メニューを表示するにはスワイプしてください
型変換は、あるデータ型の値を別のデータ型に変換する処理。これは主に数値を表す型同士で可能。例えば、float を int に、またその逆にも変換できる。ただし、string を直接 int に変換することは論理的に意味がなく、追加の手順なしでは不可能。
型変換には 暗黙的型変換 と 明示的型変換 の2種類がある。
暗黙的型変換 は、値が自動的に一方の型から他方の型に変換される場合に発生し、通常は小さいデータ型から大きいデータ型への変換で行われる。
main.cs
1234int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
暗黙的型変換は、小さいデータ型が大きいデータ型に変換されるときに自動的に行われる。データ型の大きさは、保持できるデータ量(ビット数)で決まる。例えば、int は32ビット、long は64ビットを保持できるため、int から long への変換は自動的に行われる。同様に、float から double への変換も問題なく行われる。
データ型の大きさの順序は次の通り:
char -> int -> long -> float -> double
明示的型変換 は、プログラマーが値を別のデータ型に変換するよう明示的に指示する場合に必要。これは、より大きいデータ型から小さいデータ型に変換する際、一部のデータが失われる可能性があるため。例えば、float の 3.14 を整数に変換すると小数部分が失われて 3 になる。このため、そのような変換を行う場合は明示的な指示が必要。
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
上記のコードのエラーを修正するには、val1 を明示的に整数値へキャストする必要があります。
キャストの構文は (datatype) value です。例えば、(int) 3.1415 のようになります。この場合は (int) val1 と記述します。
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください