Formater les nombres en respectant les conventions de formatage française en Swift
La bibliothèque Foundation de iOS et macOS inclut un objet appelé NumberFormatter qui permet de formater les nombres en respectant les conventions de formatage locales. En utilisant cet objet, vous pouvez formater les nombres de manière à les afficher au format français standard.
Dans votre code, vous créez un objet NumberFormatter en utilisant la déclaration suivante :
let formater = NumberFormatter()
Ensuite, vous configurez l'objet en spécifiant que vous voulez utiliser un séparateur de groupe pour les milliers, en définissant le séparateur de groupe sur une espace :
formater.usesGroupingSeparator = true
formater.groupingSeparator = " "
Vous spécifiez le style de formatage en utilisant :
formater.numberStyle = .decimal
Enfin, vous indiquez que vous voulez utiliser le formatage français en utilisant :
formater.locale = Locale(identifier: "fr_FR")
Cela permet de fixer les règles de formatage pour la France, comme l'utilisation de la virgule comme séparateur décimal.
Pour formater un nombre, vous utilisez la méthode string(from:)
de l'objet NumberFormatter en lui passant le nombre à formater sous forme d'un objet NSNumber :
var prix = formater.string(from: NSNumber(value:prix))! + " €"
En utilisant ce code, vous avez maintenant un formatage correcte des nombres avec les conventions de formatage locales française, avec un espace comme séparateur de groupe pour les milliers, une virgule comme séparateur décimal et le symbole "€" pour indiquer le type de monnaie.
Il est important de noter que vous devez utiliser NSNumber pour formater les nombres en utilisant NumberFormatter, car cette méthode n'accepte pas les types natifs de Swift.
Il est également important de vérifier que l'objet renvoyé par la méthode string(from:)
n'est pas nul, c'est pourquoi il est utilisé la notation !
pour forcer l'unwrapping, pour éviter les erreurs potentielles.
Il est aussi possible de formater d'autres types de nombres tels que les nombres décimaux et les pourcentages en utilisant les propriétés appropriées de l'objet NumberFormatter. Il est également possible de personnaliser davantage la présentation des nombres en utilisant les propriétés de l'objet NumberFormatter comme la propriété minimumFractionDigits
pour définir le nombre minimum de chiffres après la virgule.
En résumé, l'objet NumberFormatter de la bibliothèque Foundation de iOS et macOS est un outil puissant pour formater les nombres en respectant les conventions de formatage locales. En utilisant le code Swift que vous avez fourni, vous pouvez formater les nombres de manière à les afficher au format français standard en utilisant un séparateur de groupe pour les milliers, une virgule comme séparateur décimal et le symbole "€" pour indiquer le type de monnaie.
Catégories : Swift
Par Guillaume le 26/01/2023 à 20:41