Is there a simple way of printing a floating value as a string with decimals if the value has decimals, other wise print it like an int without decimals?
12.5 would print 12.50 15.0 would print 15
Is there a simple way to do this? I can think of ways which includes parse floats to strings to ints but it doesn’t seem optimal.
EDIT: This answer does not do what I want: Show decimal of a double only when needed
This answers only shows one decimal if the value only has one decimal. What I need is two decimals, or nothing.
Advertisement
Answer
You can use String.format()
, and strip off the decimal if it’s .00
with removeSuffix()
:
fun Double.toMyFormat(): String = String.format("%.2f", this).removeSuffix(".00") fun main() { println(12.5.toMyFormat()) println(15.0.toMyFormat()) }
Prints:
12.50 15
This also works with rounded numbers such as 12.999
etc.