Форматировать строку с завершающими нулями для x десятичных знаков в Swift
Это в Swift (1.2)
let doubleValue1 = Double(10.116983123)
println(String(format: "%.2f", doubleValue1))
let doubleValue2 = Double(10.0)
println(String(format: "%.2f", doubleValue2))
Печать
10.12
10.00
Я ищу способ с использованием форматирования или прямого формата строки, а не с помощью строковых манипуляций, чтобы удалить конечные нули, поэтому для печати:
10.12
10
Ближайший я получил:
let doubleValue3 = Double(10.0)
println(String(format: "%.4g", doubleValue3))
Но g
использует значимые цифры, что означает, что мне придется вычислять цифры десятичных знаков отдельно. Это звучит как уродливое решение.
Демо: http://swiftstub.com/651566091/
Любые идеи? ТИА.
Ответы
Ответ 1
Вы должны использовать NumberFormatter:
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 0
formatter.maximumFractionDigits = 2
print(formatter.string(from: 1.0000)!) //1
print(formatter.string(from: 1.2345)!) //1.23
В этом примере будет напечатано 1 для первого случая и 1,23 для второго; количество минимальных и максимальных десятичных разрядов можно регулировать по мере необходимости.
Надеюсь, это поможет вам!