Ответ 1
Чтобы установить количество цифр разряда, используйте:
percentFormatter.minimumFractionDigits = 1
percentFormatter.maximumFractionDigits = 1
Задайте минимальные и максимальные потребности. Должно быть понятно.
Я использую Swift
let myDouble = 8.5 as Double
let percentFormatter = NSNumberFormatter()
percentFormatter.numberStyle = NSNumberFormatterStyle.PercentStyle
percentFormatter.multiplier = 1.00
let myString = percentFormatter.stringFromNumber(myDouble)!
println(myString)
Выходит 8%, а не 8,5%, как я могу получить его на 8.5%? (Но только до двух знаков после запятой)
Чтобы установить количество цифр разряда, используйте:
percentFormatter.minimumFractionDigits = 1
percentFormatter.maximumFractionDigits = 1
Задайте минимальные и максимальные потребности. Должно быть понятно.
В Swift 5 у NumberFormatter
есть свойство экземпляра под названием minimumFractionDigits
. minimumFractionDigits
имеет следующую декларацию:
var minimumFractionDigits: Int { get set }
Минимальное количество цифр после десятичного разделителя, разрешенное как ввод и вывод получателем.
NumberFormatter
также имеет свойство экземпляра maximumFractionDigits
. maximumFractionDigits
имеет следующее объявление:
var maximumFractionDigits: Int { get set }
Максимальное количество цифр после десятичного разделителя, разрешенное как ввод и вывод получателем.
В следующем коде Playground показано, как использовать minimumFractionDigits
и maximumFractionDigits
для установки количества цифр после десятичного разделителя при использовании NumberFormatter
:
import Foundation
let percentFormatter = NumberFormatter()
percentFormatter.numberStyle = NumberFormatter.Style.percent
percentFormatter.multiplier = 1
percentFormatter.minimumFractionDigits = 1
percentFormatter.maximumFractionDigits = 2
let myDouble1: Double = 8
let myString1 = percentFormatter.string(for: myDouble1)
print(String(describing: myString1)) // Optional("8.0%")
let myDouble2 = 8.5
let myString2 = percentFormatter.string(for: myDouble2)
print(String(describing: myString2)) // Optional("8.5%")
let myDouble3 = 8.5786
let myString3 = percentFormatter.string(for: myDouble3)
print(String(describing: myString3)) // Optional("8.58%")
Если вы сомневаетесь, поищите в документации Apple минимальные дробные цифры и максимальные дробные цифры, которые дадут вам следующие строки, которые вы должны добавить перед форматированием вашего числа:
numberFormatter.minimumFractionDigits = 1
numberFormatter.maximumFractionDigits = 2
Также обратите внимание, что ваш вклад должен быть 0,085, чтобы получить 8,5%. Это вызвано свойством множителя, которое для стиля процента установлено на 100 по умолчанию.