Добрый день! подскажите пожалуйста как указать формат числа с разделением на разряды
(1 234 567,89)
я нашла только как указать сколько знаков нужно после запятой
testLabel.text = String(format: “%.2f”, Peremennya)
Добрый день! подскажите пожалуйста как указать формат числа с разделением на разряды
(1 234 567,89)
я нашла только как указать сколько знаков нужно после запятой
testLabel.text = String(format: “%.2f”, Peremennya)
Добрый!
Вам нужно использовать NumberFormatter()
из Foundation. Пример использования:
let number = 1234567.89
func separatedNumber(_ number: Any) -> String {
guard let itIsANumber = number as? NSNumber else { return "Not a number" }
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.groupingSeparator = " "
formatter.decimalSeparator = ","
return formatter.string(from: itIsANumber)!
}
testLabel.text = separatedNumber(number) // выводит "1 234 567,89"
let result: NSNumber = 12324324.456 // Set the varible to be of type NSNumber
let numberFormatter: NumberFormatter = NumberFormatter()
numberFormatter.groupingSeparator = " "
numberFormatter.groupingSize = 3
numberFormatter.usesGroupingSeparator = true
numberFormatter.decimalSeparator = "."
numberFormatter.numberStyle = NumberFormatter.Style.decimal
guard let stringFromNumber = numberFormatter.string(from: result) as String? else { return }
print(stringFromNumber)
что-то не работает выражение по форматированию дроби в 2 знака после запятой.
var numberDouble = 10.123456789
var numberString = String(format: "%.2f", numberDouble)
Пишет, что Argument labels ‘(format:, _:)’ do not match any available overloads
может как то по другому это решается , но я решила через округление
let number = Double(round(100*numberPR)/100)
ничем иначе как чудесами объяснить это не могу. Сегодня упомянутый раньше код на округление вдруг заработал