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)
This will work only in Kotlin/JVM.
There's clearly a piece of functionality here that is missing from Kotlin at the moment, we'll fix it.
Answer from Andrey Breslav on Stack OverflowUnfortunately, 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)
This will work only in Kotlin/JVM.
There's clearly a piece of functionality here that is missing from Kotlin at the moment, we'll fix it.
As a workaround, There is a Kotlin stdlib function that can be used in a nice way and fully compatible with Java's String format (it's only a wrapper around Java's String.format())
See Kotlin's documentation
Your code would be:
val pi = 3.14159265358979323
val s = "pi = %.2f".format(pi)