Kotlin has an excellent feature called string templates. I really love it.
val i = 10
val s = \"i = $i\" // evaluates to \"i = 10\"
But
Unfortunately, there's no built-in support for formatting in string templates yet, as a workaround, you can use something like:
"pi = ${pi.format(2)}"
the .format(n) function you'd need to define yourself as
fun Double.format(digits: Int) = "%.${digits}f".format(this)
There's clearly a piece of functionality here that is missing from Kotlin at the moment, we'll fix it.