Convert text to a number before doing math.

conversion Kotlin uses explicit conversion functions instead of automatic numeric casts.

Type Conversion

input
TypeConversion.kt
Replay: real traced execution (multi-file project)
fun main() {
    val input = "7"
    val count = input.toInt()
    val doubled = count * 2
    val label = doubled.toString()

    println("count=$count")
    println("label=$label")
}
fun main() {
    val input = "12"
    val count = input.toInt()
    val doubled = count * 2
    val label = doubled.toString()

    println("count=$count")
    println("label=$label")
}
fun main() {
    val input = "3"
    val count = input.toInt()
    val doubled = count * 2
    val label = doubled.toString()

    println("count=$count")
    println("label=$label")
}
  1. input ← 7, count ← 7, doubled ← 14, label ← 14

    1fun main() {2    val input→ 7 = "7" //@input="12", "3"3    val count→ 7 = input7.toInt()4    val doubled→ 14 = count7 * 25    val label→ 14 = doubled14.toString()67    println("count=$count7")8    println("label=$label14")9}
    outputcount=7
    label=14
  1. input ← 12, count ← 12, doubled ← 24, label ← 24

    1fun main() {2    val input→ 12 = "12"3    val count→ 12 = input12.toInt()4    val doubled→ 24 = count12 * 25    val label→ 24 = doubled24.toString()67    println("count=$count12")8    println("label=$label24")9}
    outputcount=12
    label=24
  1. input ← 3, count ← 3, doubled ← 6, label ← 6

    1fun main() {2    val input→ 3 = "3"3    val count→ 3 = input3.toInt()4    val doubled→ 6 = count3 * 25    val label→ 6 = doubled6.toString()67    println("count=$count3")8    println("label=$label6")9}
    outputcount=3
    label=6

Follow the Conversion

  1. input starts as "7".
  2. input.toInt() gives count = 7.
  3. doubled = count * 2 becomes 14.
  4. label = doubled.toString() becomes "14".
  5. The program prints count=7 and label=14. | input | count | label | | --- | --- | --- | | "12" | 12 | 24 | | "7" | 7 | 14 | | "3" | 3 | 6 |

Exercise: TypeConversion.kt

Reproduce label=14, then use the pinned inputs 12 and 3 to predict each label.