What does it mean that type conversion is always explicit in Kotlin?
It means you must manually convert one type to another using specific functions. Kotlin does not convert types automatically for you.
Click to reveal answer
beginner
How do you convert an Int to a Double in Kotlin?
You use the toDouble() function, for example: val d = 5.toDouble().
Click to reveal answer
intermediate
Why does Kotlin require explicit type conversion instead of automatic?
Explicit conversion helps avoid unexpected bugs by making conversions clear and intentional.
Click to reveal answer
beginner
Which function converts a String to an Int in Kotlin?
The function toInt() converts a String to an Int, for example: "123".toInt().
Click to reveal answer
beginner
What happens if you try to assign an Int value directly to a Double variable in Kotlin without conversion?
The code will not compile because Kotlin does not allow implicit type conversion between Int and Double.
Click to reveal answer
In Kotlin, how do you convert a Double to an Int?
AUse <code>toInt()</code> function
BAssign directly without conversion
CUse <code>convertToInt()</code> function
DUse <code>int()</code> function
✗ Incorrect
You must use the toInt() function to explicitly convert a Double to an Int.
What will happen if you write val d: Double = 5 in Kotlin?
AWorks fine, automatic conversion happens
Bd will be an Int, not Double
CRuntime error
DCompilation error due to missing explicit conversion
✗ Incorrect
Kotlin requires explicit conversion, so you must write val d: Double = 5.toDouble().
Which of these is the correct way to convert a String "100" to Int in Kotlin?
AparseInt("100")
B"100".toInt()
C"100".convertToInt()
DInt("100")
✗ Incorrect
The correct Kotlin function is toInt() called on the String.
Why does Kotlin avoid implicit type conversion?
ABecause it is slower
BTo make code longer
CTo prevent unexpected bugs
DBecause Java does it
✗ Incorrect
Explicit conversions make the programmer aware of changes, reducing bugs.
Which function converts an Int to a Long in Kotlin?
AtoLong()
BtoLongInt()
CconvertToLong()
Dlong()
✗ Incorrect
The function toLong() converts an Int to a Long explicitly.
Explain why Kotlin requires explicit type conversion and give an example converting Int to Double.
Think about how Kotlin treats type safety and how you convert types manually.
You got /4 concepts.
Describe what happens if you try to assign an Int value directly to a Double variable without conversion in Kotlin.
Remember Kotlin does not do automatic type changes.
You got /3 concepts.
Practice
(1/5)
1. In Kotlin, why must you use explicit functions like toInt() or toDouble() to convert types?
easy
A. Because Kotlin only converts types when variables are declared as var.
B. Because Kotlin automatically converts types without any functions.
C. Because Kotlin converts types only during runtime, not compile time.
D. Because Kotlin does not perform automatic type conversion to avoid unexpected errors.
Solution
Step 1: Understand Kotlin's type safety
Kotlin is designed to be safe and clear, so it avoids implicit conversions that might cause bugs.
Step 2: Recognize explicit conversion requirement
To convert types, Kotlin requires explicit calls like toInt() or toDouble() to make conversions clear and intentional.
Final Answer:
Because Kotlin does not perform automatic type conversion to avoid unexpected errors. -> Option D
Quick Check:
Explicit conversion = Kotlin safety [OK]
Hint: Remember: Kotlin never converts types automatically [OK]
Common Mistakes:
Assuming Kotlin converts types automatically
Thinking conversions happen only for mutable variables
Believing conversions occur only at runtime
2. Which of the following Kotlin code snippets correctly converts a Double value 3.14 to an Int?
easy
A. val num: Int = 3.14 as Int
B. val num: Int = 3.14
C. val num: Int = 3.14.toInt()
D. val num: Int = Int(3.14)
Solution
Step 1: Check each option for valid Kotlin syntax
val num: Int = 3.14 tries implicit conversion, which Kotlin disallows. val num: Int = 3.14 as Int uses 'as' cast, which is invalid for primitive types. val num: Int = Int(3.14) tries to call a constructor like a function, which is invalid.
Step 2: Identify the correct explicit conversion
val num: Int = 3.14.toInt() uses toInt(), the correct explicit function to convert a Double to Int in Kotlin.
Final Answer:
val num: Int = 3.14.toInt() -> Option C
Quick Check:
Use toInt() for Double to Int [OK]
Hint: Use toInt() or toDouble() for explicit conversions [OK]
Common Mistakes:
Using implicit assignment without conversion
Using 'as' cast for primitive types
Trying to call type as a function
3. What will be the output of the following Kotlin code?
val x: Double = 9.99
val y: Int = x.toInt()
println(y)
medium
A. 10
B. 9
C. 9.99
D. Compilation error
Solution
Step 1: Understand the conversion from Double to Int
The toInt() function converts a Double to Int by dropping the decimal part, not rounding.
Step 2: Apply conversion to the value 9.99
Dropping the decimal part of 9.99 results in 9.
Final Answer:
9 -> Option B
Quick Check:
toInt() drops decimals = 9 [OK]
Hint: toInt() truncates decimals, does not round [OK]
Common Mistakes:
Assuming toInt() rounds the number
Expecting a compilation error
Confusing Double and Int print output
4. Identify the error in this Kotlin code snippet and choose the correct fix:
val a: Int = 5
val b: Double = a
println(b)
medium
A. Change val b: Double = a to val b: Double = a.toDouble()
B. Change val a: Int = 5 to val a: Double = 5
C. Add explicit cast: val b: Double = a as Double
D. No error, code runs fine
Solution
Step 1: Understand Kotlin's type conversion rules
Kotlin does not allow implicit conversion from Int to Double, so val b: Double = a causes a compilation error.
Step 2: Apply explicit conversion to fix the error
Using a.toDouble() explicitly converts Int to Double, fixing the error.
Final Answer:
Change val b: Double = a to val b: Double = a.toDouble() -> Option A
Quick Check:
Explicit conversion needed for Int to Double [OK]
Hint: Use toDouble() to convert Int to Double explicitly [OK]
Common Mistakes:
Assuming implicit conversion works
Using 'as' cast for primitive types
Ignoring compilation errors
5. You have a list of Double values: val numbers = listOf(1.5, 2.7, 3.9). You want to create a list of Int values by converting each Double to Int. Which Kotlin code correctly does this?
hard
A. val ints = numbers.map { it.toInt() }
B. val ints = numbers.map { Int(it) }
C. val ints = numbers.map { it as Int }
D. val ints = numbers.map { it }
Solution
Step 1: Understand the list transformation requirement
You want to convert each Double in the list to an Int explicitly.
Step 2: Check each option for correctness
val ints = numbers.map { it } returns the original Doubles without conversion. val ints = numbers.map { it as Int } uses 'as' cast, invalid for primitive types. val ints = numbers.map { Int(it) } tries to call Int as a constructor, which is invalid. val ints = numbers.map { it.toInt() } correctly uses toInt() inside map to convert each element.
Final Answer:
val ints = numbers.map { it.toInt() } -> Option A
Quick Check:
Use map with toInt() for list conversion [OK]
Hint: Use map { it.toInt() } to convert list elements explicitly [OK]
Common Mistakes:
Using map without conversion
Using 'as' cast for primitives
Trying to call Int as a function
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.