📖 Scenario: Imagine you are working on a simple calculator program that needs to convert numbers between different types to perform accurate calculations.
🎯 Goal: You will learn how to convert (cast) variables from one type to another in C++ using type casting.
📋 What You'll Learn
Create variables with specific types and values
Create a helper variable for casting
Use C++ style type casting to convert types
Print the results to see the effect of casting
💡 Why This Matters
🌍 Real World
Type casting is used in many programs to convert data between types for calculations, input/output, and interfacing with hardware or libraries.
💼 Career
Understanding type casting is essential for software developers working in C++ to write safe and correct code that handles different data types.
Progress0 / 4 steps
1
Create initial variables
Create an int variable called wholeNumber with the value 7 and a double variable called decimalNumber with the value 3.14.
C++
Hint
Use int and double to declare the variables with the exact names and values.
2
Create a helper variable for casting
Create a double variable called result and set it to 0.0.
C++
Hint
Use double result = 0.0; to create the helper variable.
3
Apply type casting
Use C++ style casting to convert wholeNumber to double and add it to decimalNumber. Store the sum in result. Use result = decimalNumber + static_cast<double>(wholeNumber);.
C++
Hint
Use static_cast<double>(wholeNumber) to convert wholeNumber to double.
4
Print the result
Write a std::cout statement to print the value of result.
C++
Hint
Use std::cout << result << std::endl; to print the result.
Practice
(1/5)
1. What does static_cast<int>(3.14) do in C++?
easy
A. Leaves the value unchanged as 3.14
B. Converts the integer 3 to the floating-point number 3.14
C. Causes a runtime error
D. Converts the floating-point number 3.14 to the integer 3
Solution
Step 1: Understand static_cast usage
static_cast<int> converts a value to an integer type explicitly.
Step 2: Apply static_cast to 3.14
The floating-point number 3.14 is converted to integer by dropping the decimal part, resulting in 3.
Final Answer:
Converts the floating-point number 3.14 to the integer 3 -> Option D
Quick Check:
static_cast<int>(3.14) = 3 [OK]
Hint: static_cast truncates decimals when converting float to int [OK]
Common Mistakes:
Thinking it rounds the number instead of truncating
Confusing static_cast with dynamic_cast
Expecting a runtime error from static_cast
2. Which of the following is the correct syntax for casting a double variable d to int using static_cast?
easy
A. int i = (int)static_cast(d);
B. int i = static_cast<int>(d);
C. int i = static_cast(d, int);
D. int i = static_cast<int>d;
Solution
Step 1: Recall static_cast syntax
The correct syntax is static_cast<type>(expression).
Step 2: Match syntax with options
int i = static_cast<int>(d); matches the correct syntax: int i = static_cast<int>(d);.
Final Answer:
int i = static_cast<int>(d); -> Option B
Quick Check:
Correct static_cast syntax = int i = static_cast<int>(d); [OK]
Hint: Use angle brackets for type in static_cast [OK]
Common Mistakes:
Using parentheses instead of angle brackets for type
Placing type after variable instead of inside <>
Mixing C-style cast syntax with static_cast
3. What is the output of the following C++ code?
double x = 9.99;
int y = static_cast<int>(x);
std::cout << y << std::endl;
medium
A. 9.99
B. 10
C. 9
D. Compilation error
Solution
Step 1: Understand static_cast behavior on double to int
static_cast truncates the decimal part, so 9.99 becomes 9.
Step 2: Predict output of std::cout
The integer 9 is printed to the console.
Final Answer:
9 -> Option C
Quick Check:
static_cast<int>(9.99) = 9 [OK]
Hint: Casting double to int drops decimals, no rounding [OK]
Common Mistakes:
Expecting rounding to 10 instead of truncation
Confusing output type with original double
Thinking static_cast causes compile error here
4. Identify the error in this code snippet:
float f = 3.5f;
int i = static_cast<int> f;
std::cout << i;
medium
A. Missing parentheses after static_cast<int>
B. Cannot cast float to int using static_cast
C. Variable i is not declared
D. Missing semicolon after float declaration
Solution
Step 1: Check static_cast syntax
static_cast requires parentheses around the value to cast, like static_cast<int>(f).
Step 2: Identify missing parentheses
The code misses parentheses after static_cast<int>, causing syntax error.
Final Answer:
Missing parentheses after static_cast<int> -> Option A
Quick Check:
static_cast<int>(f) needs parentheses [OK]
Hint: Always use parentheses after static_cast type [OK]
Common Mistakes:
Omitting parentheses after static_cast
Thinking static_cast can't convert float to int
Ignoring compiler error messages
5. Given the code below, what will be the output?
int a = 65;
char c = static_cast<char>(a);
std::cout << c << std::endl;
Note: ASCII value 65 corresponds to 'A'.
hard
A. 'A'
B. Compilation error
C. 65
D. Undefined behavior
Solution
Step 1: Understand static_cast from int to char
static_cast converts the integer 65 to its corresponding ASCII character 'A'.
Step 2: Predict output of std::cout
Printing the char variable outputs the character 'A'.
Final Answer:
'A' -> Option A
Quick Check:
static_cast<char>(65) = 'A' [OK]
Hint: Casting int to char prints ASCII character [OK]
Common Mistakes:
Expecting numeric 65 to print instead of 'A'
Thinking casting int to char causes error
Confusing char with string output
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.