0Pricing
C# Academy · レッスン

数値を相互変換する

キャストとConvertメソッドを学びます。

「数値を相互変換する」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全4レッスンが含まれています。

なぜ変換するのか

異なる数値型は、常に自由に混在させられるとは限りません。ある型の値を別の型に変換しなければならない場合があります。

C# には、暗黙的な変換、明示的なキャスト、Convert クラス、テキストからのパースが用意されています。このレッスンでは、それぞれについて学びます。

暗黙的な変換

変換先の型が変換元の取り得るすべての値を保持できる場合、C# は追加の構文なしで暗黙的に変換します。

int は double に収まるため、この代入は自動的かつ安全に行われます。

int whole = 7;
double real = whole;
Console.WriteLine(real);

明示的なキャスト

逆方向の変換ではデータが失われる可能性があるため、C# では変換先の型を括弧で指定する明示的なキャストが必要です。

double を int にキャストすると、小数部分は0に近づく方向に切り捨てられます。

double price = 9.99;
int dollars = (int)price;
Console.WriteLine(dollars);

キャストでオーバーフローが起きる場合

変換先の型に収まらない値をキャストすると、オーバーフローによって誤った結果になることがあります。

大きな long を int にキャストすると値が巡回するため、必ず値が収まることを確認してください。

long big = 3000000000;
int small = (int)big;
Console.WriteLine(small);

Convert クラス

System.Convert クラスには、Convert.ToInt32 や Convert.ToDouble などのメソッドがあり、型同士を変換できます。

キャストとは異なり、Convert.ToInt32 は double の小数部分を切り捨てず、最も近い整数に丸めます。

double value = 9.99;
int rounded = Convert.ToInt32(value);
Console.WriteLine(rounded);

テキストから数値をパースする

ユーザー入力やファイルの内容は、string として受け取ります。int.Parse や double.Parse を使って、テキストを数値に変換します。

テキストが有効な数値でない場合、パースによって例外がスローされます。

string text = "42";
int number = int.Parse(text);
Console.WriteLine(number + 8);

TryParse による安全なパース

int.TryParse は変換を試み、例外をスローする代わりに true または false を返します。パースされた値は out パラメーターを通じて返されます。

信頼できない入力を扱う場合に適した安全な方法です。

bool ok = int.TryParse("abc", out int result);
Console.WriteLine(ok);
Console.WriteLine(result);

数値を文字列に変換する

すべての数値型には、テキストを生成する ToString メソッドがあります。書式文字列を渡して、表示形式を制御できます。

  • "C" 通貨
  • "F2" 小数点以下2桁の固定小数点
  • "N0" 3桁区切り
double amount = 1234.5;
Console.WriteLine(amount.ToString("F2"));
Console.WriteLine(amount.ToString("N0"));

除算のための int から double への変換

変換を行うよくある理由の1つは、整数除算を避けることです。小数部分を保持するには、除算の前に一方のオペランドを double にキャストします。

キャストしない場合、小数部分が切り捨てられた整数の結果になります。

int scored = 7, total = 10;
double percent = (double)scored / total * 100;
Console.WriteLine(percent);

キャストと Convert と Parse の違い

適切な方法を選びましょう。

  • Cast:数値型同士を変換します(切り捨て)
  • Convert:多くの型の間で変換します(丸め、null の処理に対応)
  • Parse / TryParse:テキストを数値に変換します

制御できない入力には、TryParse を使用してください。

変換の例

この完全なプログラムでは、テキストから数値を読み取り、変換して計算し、結果を通貨形式で出力します。

string input = "19.95";
if (decimal.TryParse(input, out decimal price))
{
    decimal withTax = price * 1.20m;
    Console.WriteLine(withTax.ToString("F2"));
}

理解度チェック

ユーザーが入力したテキストを数値に変換する、安全な方法を選びましょう。

まとめ

数値の変換について学びました。安全な場合の暗黙的な変換、明示的なキャスト(切り捨てが行われ、オーバーフローする可能性があります)、丸めを行う Convert クラス、Parse とより安全な TryParse によるテキストのパースについて確認しました。

また、ToString の書式コードを使って、数値を文字列に戻す方法も学びました。整数除算を避けるには、一方のオペランドを double にキャストします。

よくある質問

「数値を相互変換する」レッスンは無料ですか?

はい。「数値を相互変換する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全4レッスンが含まれています。

「数値を相互変換する」で何を学びますか?

キャストとConvertメソッドを学びます。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「数値を相互変換する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 数値型
  2. 算術演算と優先順位
  3. Mathクラス
  4. 数値を相互変換する
← C# Academyに戻る