2012-04-19 2 views
1

Salut les gars c'est ma première question et je suppose que peut être facile pour vous, je veux convertir ce NSString "42031692.7810" à quelque chose comme ceci: $ 4,2031,692.78, j'ai le code suivant:Format grandes quantités

NSString *element = @"42031692.7810"; 
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
    [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
    [formatter setGeneratesDecimalNumbers:YES]; 
    [formatter setMaximumFractionDigits:2]; 
    NSNumber *temp = [formatter numberFromString:element]; 
    NSLog(@"formatter%@",[temp stringValue]); 

mais la sortie est quelque chose comme ceci:

2012-04-19 14:43:42.467 HelloWorld[5663:f803] formatter(null) 

Comment puis-je fixe ce ??? J'espère que tu peux m'aider!!

Cordialement!

Répondre

2

Vous avez la chaîne @"42031692.7810", et vous avez un NSNumberFormatter configuré pour accepter les objets de style devise. @"42031692.7810" n'est pas dénommé devise. Ainsi, il renvoie nil.

Vous devez définir le formatter numérique pour accepter une entrée décimale, tourner la chaîne en un NSNumber, puis définir le style de formatter le style « monnaie », puis tournez la NSNumber de nouveau dans un NSString.

+0

Oui cela fonctionne vraiment, j'ai fait que vous m'avez dit, et fonctionne, maintenant je suis dans le doute avec le prochain problème, j'ai créé un NSMutableArray de NSNumbers, mais quand je itère le tableau pour imprimer les nombres de formateurs à nouveau la sortie est NULL pour (i = 0, cant = [num-nombre de tables]; i bichitojona

+0

oh était de ma faute j'utilisais un autre tableau, mais votre solution fonctionne vraiment! Merci beaucoup – bichitojona

Questions connexes