Как показать ноль после запятой в NumberFormatter - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь отформатировать мой номер в строку, используя NumberFormatter.Это мой код:

        let formater = NumberFormatter()
        formater.groupingSeparator = " "
        formater.numberStyle = .decimal


        let formattedNumber = formater.string(from: (self.money as NSNumber))

        self.currentMoneyLabel.text = "\(formattedNumber!) ₽"

У меня есть номер что-то вроде этого 1 234, но мне нужно получить номер что-то вроде этого 1 234,00.

если мой номер после десятичной точки, число не ноль, все работает хорошо.Но если число после запятой равно нулю, оно не отображается.Как сделать так, чтобы числа до сотых отображались всегда, даже если это ноль?

1 Ответ

0 голосов
/ 01 марта 2019

Просто добавьте:

formater.minimumFractionDigits = 2

Документация находится здесь: https://developer.apple.com/documentation/foundation/numberformatter/1410459-minimumfractiondigits

РЕДАКТИРОВАТЬ : Но вы должны использовать формат валюты с правильным языком:

let price = 1234

let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "ru_RU")
formatter.string(for: price) // "1 234,00 ₽"

Но если вы предпочитаете, чтобы ваше приложение адаптировалось к локали устройства, просто замените строку локали на:

formatter.locale = .current
...