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
:
→ Get my Swift Handbook
I wrote 21 books to help you become a better developer:
- HTML Handbook
- Next.js Pages Router Handbook
- Alpine.js Handbook
- HTMX Handbook
- TypeScript Handbook
- React Handbook
- SQL Handbook
- Git Cheat Sheet
- Laravel Handbook
- Express Handbook
- Swift Handbook
- Go Handbook
- PHP Handbook
- Python Handbook
- Linux Commands Handbook
- C Handbook
- JavaScript Handbook
- Svelte Handbook
- CSS Handbook
- Node.js Handbook
- Vue Handbook