J'utilise 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)
Produit 8% et non 8,5%, comment puis-je obtenir une sortie de 8,5%? (Mais seulement jusqu'à 2 décimales)
Pour définir le nombre de chiffres de fraction, utilisez:
percentFormatter.minimumFractionDigits = 1
percentFormatter.maximumFractionDigits = 1
Fixez le minimum et le maximum à vos besoins. Devrait être explicite.
Avec Swift 5, NumberFormatter
a une propriété d'instance appelée minimumFractionDigits
. minimumFractionDigits
a la déclaration suivante:
var minimumFractionDigits: Int { get set }
Le nombre minimum de chiffres après le séparateur décimal autorisé comme entrée et sortie par le récepteur.
NumberFormatter
possède également une propriété d'instance appelée maximumFractionDigits
. maximumFractionDigits
a la déclaration suivante:
var maximumFractionDigits: Int { get set }
Le nombre maximum de chiffres après le séparateur décimal autorisé comme entrée et sortie par le récepteur.
Le code Playground suivant montre comment utiliser minimumFractionDigits
et maximumFractionDigits
afin de définir le nombre de chiffres après le séparateur décimal lors de l'utilisation de 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%")
En cas de doute, regardez dans Apple documentation pour chiffres de fraction minimum et chiffres de fraction maximum qui vous donnera ces lignes que vous devez ajouter avant formatage de votre numéro:
numberFormatter.minimumFractionDigits = 1
numberFormatter.maximumFractionDigits = 2
Notez également que votre l'entrée doit être de 0,085 pour obtenir 8,5% . Ceci est provoqué par la propriété du multiplicateur , qui correspond au style de pourcentage défini sur 100 par défaut.