2010-11-16 25 views
1

J'ai une chaîne entrée par l'utilisateur, cette chaîne est traitée pour n'avoir que des nombres, tels que: "3472042".Comment formater du double au format d'argent? Par exemple: 3.234,12

Je puis convertir cette chaîne à une double valeur, mais je veux que ce soit formaté en tant que valeur de l'argent, comme: 3.472,042

Tout comme DecimalFormat en Java si cela aide.

J'ai essayé certaines choses avec NSNumberFormatter mais pas de chance. Quelqu'un peut-il me donner un coup de main avec ça?

occasion ceci au début:

 
     NSString *string = txtOtherPower.text; 
     NSCharacterSet *removeCharSet = [NSCharacterSet characterSetWithCharactersInString:@"•€£¥./:;@#$%&*(){}[]!?\\-|_=+\"`'~^abcdefghijklmnopqrstvwxyz' '"]; 
     string = [[string componentsSeparatedByCharactersInSet:removeCharSet] componentsJoinedByString:@""]; 

Alors que les seuls caractères acceptables sont des virgules "," et des chiffres. Le problème est que si je tape quelque chose comme "2,2,2,2,,,,,1,,2" alors ça ne fera rien. Et cela mess avec ma chaîne/numéro.

J'ai besoin de valeurs de monnaie parfaitement formatées ... Des idées?

Répondre

4

Créer un NSNumberFormatter, définir son style à NSNumberFormatterCurrencyStyle ou NSNumberFormatterDecimalStyle (ou, si ces styles ne fonctionnent pas pour vous, le configurer avec setPositiveFormat:, setNegativeFormat: etc.), puis convertir le nombre à une chaîne avec stringFromNumber:.

Voir la documentation de cette classe pour plus de détails.

+0

Il ne formate pas la chaîne exactement comme je le voulais ... Il formate "123456789" comme "123,456,789" sans utiliser de points. Une idée de comment réparer ça? –

+2

L'utilisation d'un «,» est plus standard pour les affaires internationales comme cela est fait par les États-Unis, le Royaume-Uni, le Japon et la Chine, donc si vous ne voulez pas aller avec cette norme, vous devriez utiliser NSsetFormatter -setLocale: méthodes de sorte qu'il semble correct dans le pays de chaque personne. –

+1

Vous devez respecter les paramètres régionaux de l'utilisateur (NSNumberFormatter le fait automatiquement) et ne pas formater les numéros comme vous le souhaitez. –