Conteúdo do Curso
C++ Data Types
C++ Data Types
Explicit Type Conversion
If you are dealing with variables of type int
, rather than just numbers in code, you need to convert the value of a variable to double
or float
. This can be accomplished using the following syntax:
main
#include <iostream> int main() { int num1 = 9; int num2 = 4; std::cout << "No conversion: " << num1 / num2 << std::endl; std::cout << "With conversion: " << (double)num1 / num2 << std::endl; }
There are several ways to explicitly perform type conversion in C++. The previous one is called C-style conversion:
main
#include <iostream> int main() { float num = 6.5; std::cout << (int)num << std::endl; // 6.5 to `int` is 6 std::cout << (bool)num << std::endl; // 6.5 to `bool` is true }
There are also 4 type casting operators:
Most of the time, you only need a static_conversion
. We will not discuss other casts in-depth. Here is the syntax:
And here is an example:
main
#include <iostream> int main() { float num = 6.5; std::cout << static_cast<int>(num) << std::endl; // 6.5 to `int` is 6 std::cout << static_cast<bool>(num) << std::endl; // 6.5 to `bool` is true }
We will not cover the difference between all of those. In general, static_cast
is preferable since it is more restrictive and can prevent some unexpected behavior with complex data types.
Obrigado pelo seu feedback!