Число с разделением на разряды


#1

Добрый день! подскажите пожалуйста как указать формат числа с разделением на разряды
(1 234 567,89)

я нашла только как указать сколько знаков нужно после запятой

testLabel.text = String(format: “%.2f”, Peremennya)


Разрядность числа TextFild - Editing Changed
#2

Добрый!
Вам нужно использовать 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"

#3
    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)

#4

что-то не работает выражение по форматированию дроби в 2 знака после запятой.

var numberDouble = 10.123456789
var numberString = String(format: "%.2f", numberDouble)

Пишет, что Argument labels ‘(format:, _:)’ do not match any available overloads


#5

Спасибо большое !!! Хорошего Вам дня!


#6

может как то по другому это решается , но я решила через округление

let number = Double(round(100*numberPR)/100)


#7

ничем иначе как чудесами объяснить это не могу. Сегодня упомянутый раньше код на округление вдруг заработал