Menu
CoddyTech

类型转换(第 1 部分)

本课属于 Coddy C++ 学习旅程的“基础知识”单元。第 14 课,共 74 课。

类型转换是将一个值从一种数据类型转换为另一种数据类型的过程。

在 C++ 中,我们可以将整数转换为双精度浮点数,将双精度浮点数转换为整数,等等。类型转换有两种:隐式(自动)转换和显式(手动)转换。

例如,Integer to Double:

隐式(自动)类型转换:

int number = 5;
double decimal = number; // 自动变为 5.0

// 进行计算
int x = 7;
double result = x / 2.0; // result 为 3.5

注意:用两个 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) 在这里都会产生相同的结果,但在现代 C++ 中,推荐使用 static_cast<>(),因为它能让类型转换清晰可见,并且会由编译器检查。

challenge icon

挑战

入门

编写一个 C++ 程序来演示类型转换。完成以下操作:

将 price 变量转换为 int,并将结果存储在名为 intPrice 的新变量中。

亲手试试

    int intPrice = ?; // 将 double 显式转换为 int
    
    
    // 输出这些值
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: C++ 在线编译器