Menu
CoddyTech

型変換 パート1

CoddyのC++ジャーニー「基礎」セクションの一部。レッスン 14/74。

型変換とは、値をあるデータ型から別のデータ型に変換する処理です。

C++では、整数を倍精度浮動小数点数に、倍精度浮動小数点数を整数に変換するなど、さまざまな変換ができます。キャストには、暗黙的(自動)キャストと明示的(手動)キャストの2種類があります。

たとえば Integer to Double:

暗黙的(自動)な型変換:

int number = 5;
double decimal = number; // 自動的に5.0になる

// 計算を伴う場合
int x = 7;
double result = x / 2.0; // resultは3.5になる

注意:2 つの int 値を割るとき、C++ は整数除算を行い、小数部分は切り捨てられます。たとえば、7 / 2 の結果は 3 であり、3.5 ではありません。小数の結果を得るには、少なくとも一方のオペランドが double である必要があります(例:7 / 2.0 の結果は 3.5 です)。

明示的(手動)キャスト Double to Integer:

double decimal = 9.7;
int number = (int) decimal;  // 9になる(小数部分は切り捨てられる)

// 計算を伴う場合
double price = 19.99;
int roundedPrice = (int) price;  // 19になる

現代的なC++で推奨されるスタイル:Cスタイルのキャストである(int) decimalを使うよりも、意図がより明確で安全なstatic_cast<>()を使うのが望ましいです。

double decimal = 9.7;
int number = static_cast<int>(decimal);  // 9 になる(小数部分は切り捨てられる)

double price = 19.99;
int roundedPrice = static_cast<int>(price);  // 19 になる

注意:(int) valueとstatic_cast<int>(value)はどちらもここでは同じ結果になりますが、static_cast<>()は変換が明確に示され、コンパイラーによるチェックも行われるため、現代のC++では推奨される方法です。

challenge icon

チャレンジ

初心者

型キャストを示すC++プログラムを書いてください。次の操作を行います。

price変数をintにキャストし、結果をintPriceという新しい変数に格納してください。

自分で試してみよう

    int intPrice = ?; // double から int への明示的なキャスト
    
    
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: C++オンラインコンパイラ