SwiftUI: formatting decimals in Text view
When we use the Slider
view to select a value, we have to use a Double
value and this causes a problem, because when it’s time to show the value in a Text
view, number 34 appears as 34.000000
, despite us using a step
value of 1, meaning we can only select integer values in our slider:
struct ContentView: View {
@State private var age: Double = 0
var body: some View {
Form {
Slider(value: $age, in: 0...100, step: 1)
Text("\(age)")
}
}
}
Let’s see how we can format this value to show 34
instead.
When we interpolate the value of age
in the Text
view, we can provide an additional parameter called specifier
.
This specifier lets us use a string format specifier. You can lookup the available options in the Apple documentation for String.
In our case, we can use $.0f
:
Text("\(age, specifier: "%.0f")")
See? Now we get 20
instead of 20.000000
:
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025