Menu
Coddy logo textTech

型変換 パート1

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

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

C++では、整数をdoubleに、doubleを整数に変換するなど、さまざまな変換ができます。castingには2種類あります。implicit(automatically)castingとExplicit(手動)castingです。

たとえば Integer to Double

暗黙的(automatically)なキャスト:

int number = 5;
double decimal = number; // 自動的に 5.0 になります

// 計算あり
int x = 7;
double result = x / 2.0; // 結果は 3.5 です

注: 2つの int 値を割り算すると、C++は整数除算を実行します。小数部分は破棄されます。たとえば、7 / 2 の結果は 3.5 ではなく 3 です。小数の結果を得るには、少なくとも一方のオペランドが double でなければなりません(例: 7 / 2.0 の結果は 3.5 です)。

Explicit(手動)Casting Double to Integer

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

// 計算あり
double price = 19.99;
int roundedPrice = (int) price;  // 19になる

Modern 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) valuestatic_cast<int>(value) はどちらも同じ結果を生成しますが、static_cast<>() は変換が明確に示され、コンパイラーによってチェックされるため、modern C++ で推奨されるアプローチです。

challenge icon

チャレンジ

初心者

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

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

自分で試してみよう

#include <iostream>

int main() {
    // 変数を宣言して初期化する
    double price = 99.99;
    int intPrice = ?; // doubleからintへの明示的なキャスト
    
    
    // 値を出力する
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
    
    return 0;
}
quiz icon腕試し

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

基礎のすべてのレッスン

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