Я пытаюсь использовать NumberFormatter () для создания строкового представления CGFloats. В идеале я хотел бы создать строку со знаком, например, преобразовав значение
10.1
-> " 10.1"
и
-10.1
-> "- 10.1"
, целая часть дополняется с пробелами.
Это самое близкое, что я получил, но оно содержит целую часть с "0", поэтому я получаю
10.1
-> " 010.1"
и
-10.1
to "-010.1"
Если я не использую .minimumIntegerDigits
, там нет заполнения.
Я использую моноширинный шрифт для отображения значений, и я пытаюсь убедиться, они не дрожат, когда меняются, и я просто надеялся, что будет какой-то способ использовать пробел вместо 0, но в остальном точно, как работает .minimumIntegerDigits
.
extension CGFloat {
func signedPaddedString() -> String {
let formatter = NumberFormatter()
formatter.positivePrefix = " "
formatter.minimumIntegerDigits = 3
formatter.paddingCharacter = " "
formatter.minimumFractionDigits = 1
formatter.maximumFractionDigits = 1
return formatter.string(from: self as NSNumber)!
}
}