Можно ли добавить мета-переменную в форматирование строки в Swift? - PullRequest
0 голосов
/ 27 октября 2019

У меня есть функция для преобразования Double значений в String и добавления переменного числа (от 0 до 3) конечных нулей в конце.

В этой функции я могу сделать это:

var string: String = ""
switch digits {
case 0:  string = String(format:"%0.0f",  doubleValue)
case 1:  string = String(format:"%0.1f",  doubleValue)
case 2:  string = String(format:"%0.2f",  doubleValue)
default: string = String(format:"%0.3f",  doubleValue)
}

Я хотел бы иметь параметр форматирования, например:

let string = String(format:"%0.nf", numberOfDigits,  doubleValue)

Где мы можем указать количество цифр ( n ) после десятичной точкис переменной ( numberOfDigits ). Я знаю, что переменные должны быть значениями, включаемыми в строку, а не переменными форматирования.

Есть ли способ сделать это?

Rgds ... e

1 Ответ

1 голос
/ 27 октября 2019

Используйте подстановочный знак * в строке format:, чтобы указать значение переменной:

let string = String(format: "%.*f", numberOfDigits, doubleValue)

Пример:

let doubleValue = Double.pi

for numberOfDigits in 0...4 {
    print(String(format: "%.*f", numberOfDigits, doubleValue))
}

Вывод:

3
3.1
3.14
3.142
3.1416
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...