Как я могу форматировать строку двойного с быстрым? Я делаю калькулятор, как базовый калькулятор на iOS, и мне нужно решение, которое изменяет отображаемый результат в зависимости от количества символов после точки (не более 9 цифр).Форматирование строки двойного с быстрым
Example Table
|result | wished displayed result | current displayed result
| | |
|1.034 | 1.034 | 1.03
|1.000567 | 1.000567 | 1.00
|1.2 | 1.2 | 1.20
Используя этот код:
result.text = String(format: "%.2f", displayNumber)
если я получить 1.000334 в итоге только показать 1,00
EDIT:
Я забыл сказать, что мне нужно не должно превышать максимум 9 символов, включая точку. Если я удалю %.2f
, я не получу нужный результат, потому что, если я получу 1.323429249430003442, в результате результат будет равен 1.323429249430003442 со многими номерами (не должно превышать 9 цифр, включая точку), в противном случае добавление %.9f
не очень хорошо, потому что если я получу 1,32 в результате отображаемый результат будет 1.32000000 с множеством ненужных нулей.
Спасибо всем заранее
EDIT 2 (решаемая):
если кто-то будет служить в будущем, я решил это так:
var decimalNumberAsString = "\(resultNumber - floor(resultNumber))"
var decimalTrim: NSArray = decimalNumberAsString.componentsSeparatedByString(".")
numberOfDecimalPlaces = decimalTrim.objectAtIndex(1).length
if numberOfDecimalPlaces < 8 {
numberOfDecimalPlaces = decimalTrim.objectAtIndex(1).length + 1
}
else {
numberOfDecimalPlaces = 7
}
result.text = String(format: "%.\(numberOfDecimalPlaces)G", resultNumber)
См.: [Заполнители формата] (https://en.wikipedia.org/wiki/Printf_format_string#Format_placeholders) – zaph