Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Basic Type Casting | データ型の取り扱い
C#の基礎

bookBasic Type Casting

メニューを表示するにはスワイプしてください

型変換は、あるデータ型の値を別のデータ型に変換する処理。これは主に数値を表す型同士で可能。例えば、floatint に、またその逆にも変換できる。ただし、string を直接 int に変換することは論理的に意味がなく、追加の手順なしでは不可能。

型変換には 暗黙的型変換明示的型変換 の2種類がある。

暗黙的型変換 は、値が自動的に一方の型から他方の型に変換される場合に発生し、通常は小さいデータ型から大きいデータ型への変換で行われる。

main.cs

main.cs

copy
1234
int 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

main.cs

copy
123456789101112131415
using 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

main.cs

copy
123456789101112131415
using 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); } } }
question mark

次の文のうち、正しいものはどれですか?

すべての正しい答えを選択

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  11

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  11
some-alt