String format for Double type number

Viewed 212

I want my number to look like 25.250.450,00

What string format do I need?

var myNumber: Double = 25250450
1 Answers

You have to declare a NumberFormatter() and add all the functionalities you want. For this specific task, this solves it:

import Foundation
// import Foundation.NSFormatter 

let formatter = NumberFormatter()
let myNumber: Double = 25250450
formatter.numberStyle = .decimal
formatter.decimalSeparator = ","
formatter.groupingSeparator="."
formatter.minimumFractionDigits = 2
//you can add other parameters to formatter such as
//:-> formatter.maximumFractionDigits

let formattedString = formatter.string(from: NSNumber(value: myNumber))!
print(formattedString)

Full documentation of the NumberFormatter class is available at https://developer.apple.com/documentation/foundation/numberformatter

EDIT (SwiftUI variant):

import SwiftUI
import Foundation

struct ContentView: View {
    func parseNumber(_ myNumber:Double)->String?{
        let formatter = NumberFormatter()
        
        formatter.numberStyle = .decimal
        formatter.decimalSeparator = ","
        formatter.groupingSeparator="."
        formatter.minimumFractionDigits = 2
        //you can add other parameters to formatter such as
        //:-> formatter.maximumFractionDigits

        let formattedString = formatter.string(from: NSNumber(value: myNumber))!
        return formattedString
    }
    var body: some View {
        let myNumber: Double = 25250450
        Text("\(parseNumber(myNumber)!)")
            .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Related