À un moment donné du développement de votre Mac, de votre iPhone ou de votre iPad, vous aurez peut-être besoin d'exprimer un nombre long (1000000000) en tant que chaîne séparée par des virgules (1 000 000 000) pour faciliter la vie de vos utilisateurs. La classe NSNumberFormatter est un outil sophistiqué permettant de convertir des nombres en chaînes prenant en charge différents types de devises et de localisations. C'est également la classe idéale pour tirer parti de notre tâche de comma.
Tout d'abord, la classe NSNumberFormatter fonctionne sur les objets NSNumber. Nous devons donc convertir notre numéro en NSNumber s'il ne s'y trouve pas déjà.NSNumber * number = [NSNumber numberWithInt: 1000000000];
NSNumber prend également en charge les valeurs à virgule flottante (numberWithFloat) et le groupe standard d’autres formats de nombres.
Avec notre numéro NSNumber en main, nous pouvons continuer avec les bonnes choses. NSNumberFormatter prend en charge le regroupement de chiffres numériques en groupes de longueur arbitraire (nous voulons des groupes de trois) et la séparation des groupes avec des chaînes arbitraires (nous souhaitons utiliser une virgule (@ ”,”) mais nous pourrions utiliser n'importe quelle chaîne). Voici le code qui fait notre chaîne:
NSNumberFormatter * frmtr = [[NSNumberFormatter alloc] init];
[frmtr setGroupingSize: 3];
[frmtr setGroupingSeparator: @ ","];
[frmtr setUsesGroupingSeparator: YES];
NSString * commaString = [frmtr stringFromNumber: number];
En savoir plus sur les trucs fous de NSNumberFormatter ici. Il peut également faire des choses intéressantes, comme épeler un chiffre comme 42 en 42 et gérer des chiffres significatifs.